Script para importar subreddits desde un archivo JSON

Compartí con amigos:

Hola amigos de #MakersArgentina y #RaspberryPiArgentina, hoy les traemos un tutorial de @Fabio (fabio muñoz) que esperamos les pueda interesar.

También pedimos disculpas con los miemos de la comunidad debido a que algunos mandaron tutoriales y aun no estan cargados! Ya los vamos a cargar!!

Este tutorial se denomina Script para importar subreddits desde un archivo JSON asi que vamos a eso

reddit

Para los que comienzan a leer este tutorial les vamos a comentar lo que también se puede encontrar en la wiki:

Reddit es un sitio web de marcadores sociales y agregador de noticias donde los usuarios pueden añadir texto, imágenes, vídeos o enlaces. Otros usuarios pueden votar a favor o en contra del contenido, haciendo que aparezcan más o menos destacados

En esta ocasión, traemos un script hecho en python, que permite importar a tu cuenta de Reddit, una lista de subreddits que tengas en un archivo JSON.

Cabe aclarar, que lo podes tener en un archivo .xls que puede ser convertido a .txt con un formato de datos compatible con JSON.

Por ejemplo:

{    "Subreddits" : [    {    "Nombre": "Xiaomi"    },    {    "Nombre": "airplaneears"    },    {    "Nombre": "Android"    },    {    "Nombre": "angrycatpics"   }   ]  }

Primero añadimos las librerías que vamos a necesitar:

#Imports

import getpass
import praw
import codecs
import json

PRAW, es una API de Reddit, que nos permite comunicarnos con una cuenta de reddit para realizar acciones.

Con PRAW podemos crear dos tipos de instancias Reddit: Read-only y Authorized. Las primeras son sólo para obtener datos de Reddit y con la segunda, podemos realizar acciones sobre Reddit modificando algún contenido. Ésta es la que vamos a crear.

La creación de una instancia Authorized, necesita de los siguientes datos:

reddit = praw.Reddit (client_id='my client id',
          client_secret='my client secret',
                      user_agent='my user agent',
                      username='my username',
                      password='my password')

Para obtener estos datos, se debe dirigir a Reddit y crear una app propia en el siguiente link:

https://www.reddit.com/prefs/apps

Creamos una nueva app, del tipo Script. Ésto nos brindará un client_id y un client_secret.

Luego procedemos a la creación de las variables que vamos a utilizar:

variables

Una vez creadas las variables, procedemos a desarrollar el script que se encargará de crear una instancia de Reddit para poder utilizarla, obtener un archivo JSON a partir de un archivo .txt y, según cada subreddit que encuentre, irá subscribiéndose a cada uno con la cuenta que le hayamos ingresado.

code

Una vez finalizado, procedemos a correr el script de la siguiente manera: Python3 main.py

Si apraece el error de que PRAW no está disponible, se puede instalar siguiendo las intrucciones de la documentación: https://praw.readthedocs.io/en/latest/getting_started/installation.html

Codigo Completo:

# imports
import getpass
import praw
import codecs
import json

# variables
user = input("Ingresar nombre de usuario: ")
password = getpass.getpass("Ingrese la contraseña para " + user + ": ")
client_id = getpass.getpass("Ingrese el client_id: ")
client_secret = getpass.getpass("Ingrese el client_secret: ")
user_agent = "Reddit Import Subs Script 1.0 by /u/fabiomun"

# code
reddit = praw.Reddit(
  client_id = client_id,
  client_secret = client_secret,
  user_agent = user_agent,
  username = user,
  password = password
)

data = json.load(codecs.open('data.txt', 'r', 'utf-8-sig'))
for sub in data['Subreddits']:
 subreddit = reddit.subreddit(sub['Nombre'])
 praw.models.Subreddit.subscribe(subreddit)

Si querés el gist: https://gist.github.com/fabio195/1a4b8c07455cbcd678ed4f5bf917346a

Espero les sea util y como siempre estan invitados a dejar su #HuellaMakers en nuestra comunidad!!

Compartí con amigos:

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *