19 luglio 2022

Reddit da shell

mio_primo

Usare reddit da linea di comando

Introduzione

Ci sono diverse applicazioni scaricabili da github per gestire o utilizzare reddit da linea di comando o da shell. In questo articolo ne vedremo un piccolo elenco e ne illustreremo una veloce e concisa spiegazione. Ma prima di questo bisogna chiedersi quali vantaggi ci sono nell’uso della linea di comanda per gestire un account di un social network.

Perché usare la linea di comando per gestire reddit ?

La ragione principale per utilizzare la shell o la linea di comando su reddit è che mediante l’interfaccia testuale è possibile aumentare la velocità di interazione col social network. Sia perché i tempi di invio e attesa di risposta dei dati sono inferiori e sia perché la linea di comando è più immediata. Inoltre la linea di comando permette di creare semplici o anche complessi script per automatizzare tante operazioni. È possibile per esenzio sfruttare cron e una lista di link da postare ogni ora in modo del tutto automatico. Un risparmio enorme di tempo e risorse.

Ecco come utilizzare Reddit dalla linea di comando.

I tool funzionanti (quindi che ho testato personalmente) a linea di comando che funzionano in ambiente sia Linux che OpenBSD o FreeBSD, sono i seguenti:

  • reddio, questo tool è molto ben fatto, non necessita di molta configurazione, è scriptabile e una volta presa la mano funziona molto bene. Ecco uno screenshot del software che estrae tre post dal sub r/SecurityIT. Aproposito se vi interessa la sicurezza informatica questo sub vi piacerà di sicuro.

    reddio
  • tuir

Reddio

Con reddio potete gestire in modo del tutto completo il vostro account reddit effettuando post, commenti, up e downvote, login e logout, cancellazione di post e commenti, entre ed uscire da sub, seguire gente, nascondere o rendere visibili commenti, segnare come letti ecc. E come già detto è possibile utilizzare il comando per creare degli script. Di seguito in questo articolo vedremo un piccolo script per postare su un determinato sub articoli presi dal web semplicemente fornendo il solo link all’articolo. Vediamo adesso come procedere all’installazione. ### Installazione Personalmente non mi piace lanciare tanti comandi, tribolare per l’installazione e l’uso dei software quindi ecco di seguito una sola riga di codice per effettuare l’installazione pronta e funzionante, è sufficiente fare copia e incolla dell’intera riga sul vostro terminale:

mkdir /tmp/reddio && cd /tmp/reddio && git clone https://gitlab.com/aaronNG/reddio && \
mkdir $HOME/.local/bin ; make PREFIX="$HOME/.local" install \ && PATH=$HOME/.local/bin:$PATH 

Utilizzo

Logon

A questo punto, se tutto è andato come doveva, avete già il software pronto e funzionante. Ma per prima cosa dovete effettuare il logon su reddit con il seguente comando:

$ reddio login

a questo punto reddio vi restituirà un link che dovrete fare copia incolla sul browser per concedere l’autorizzazione a reddio di interagire in nome e per conto vostro. login

A questo punto il browser vi presenterà la seguente finestra su cui dovrete cliccare su Accetta.

autorizzazione

Se non siete già loggati vi presenterà il form di logon. Una volta che avrete fatto click sul tasto accetta potrete chiudere il browser e tornare al terminale. Su questo, se tutto è andato come si deve, vi restituirà il messaggio login successful.

print (stampa dei titoli dei post e dei commenti)

Potete già fare una prova scaricando le intestazione di qualche post dal sub r/SecurityIT nel mondo seguente:

$ reddio pri -l2 r/SecurityIT
1 r/SecurityIT Lounge (self.SecurityIT)
https://www.reddit.com/r/SecurityIT/comments/hr1pwj/rsecurityit_lounge/
[S] 0 comments | 2 years ago by u/OceanBottle on r/SecurityIT t3_hr1pwj

1 [ITA] - C'è un nuovo malware in giro che sfugge a qualsiasi verifica | Tom's Hardware (tomshw.it)
https://www.tomshw.it/hardware/ce-un-nuovo-malware-in-giro-che-sfugge-a-qualsiasi-verifica/
0 comments | 4.8 hours ago by u/OceanBottle on r/SecurityIT t3_vwakh5

1 [ITA] - NSO Group a rischio chiusura, ma l’era dello spyware Pegasus continua. (cybersecurity360.it)
https://www.cybersecurity360.it/nuove-minacce/nso-group-a-rischio-chiusura-ma-non-finisce-lera-dello-spyware-pegasus-quali-scenari/
0 comments | 1.3 days ago by u/OceanBottle on r/SecurityIT t3_vvhraj

Quindi con questo comando è possibile stampare 2 (-l2) due titoli di post dal sub r/SecurityIT. Inoltre come potete vedere è possibile abbreviare il comando print con prin oppure pri o anche p. La stesso genere di abbreviazioni si puo’ fare anche con gli altri comandi:

comment delete edit login logout message print submit
(un)follow (un)hide (un)marknsfw (un)read (un)save
(un)spoiler (un)subscribe upvote downvote unvote

Adesso vogliamo stampare i commenti di un dato post. Quindi proviamo di nuovo a stampare il primo post sul sub r/Italia e successivamente un paio di commenti:

$ reddio print -l1 r/ITALIA           
7 L'ammazzacaffè (self.Italia)
https://www.reddit.com/r/Italia/comments/vvldzv/lammazzacaffè/
[S] 14 comments | 1.2 days ago by u/AutoModerator on r/Italia t3_vvldzv

453 Ricordatevi per quale generazione ci hanno imposto di sacrificare la nostra gioventù, la nostra felicità e la nostra spensieratezza (i.redd.it)
https://i.redd.it/rsdqdslntsa91.jpg
216 comments | 14.1 hours ago by u/Conteconentecontepi on r/Italia t3_vw0b68

Ok, adesso vogliamo stampare 2 commenti dal secondo post, quello con 216 commenti e 453 upvote. Per fare ciò ci serve l’id del post che è t3_vw0b68. Lo trovate in fondo alla terza riga del post, quella dove è indicato il numero di commenti 216. Ecco come fare:

$ reddio print -l2 comments/t3_vw0b68 
466 Ricordatevi per quale generazione ci hanno imposto di sacrificare la nostra gioventù, la nostra felicità e la nostra spensieratezza (i.redd.it)
https://i.redd.it/rsdqdslntsa91.jpg
225 comments | 14.2 hours ago by u/Conteconentecontepi on r/Italia t3_vw0b68
__________________________________________________

[0] 1 u/Due_Concentrate5312 5 minutes ago t1_ifpg3cx
Ma quanto prendono di pensione ? Secondo me un po' se ne pentono , o no?

[0] 1 u/Huge-Ad-2411 11.5 minutes ago t1_ifpfl3z
Questa notizia è come il Natale ogni anno arriva

227 more

Come vedete i commenti nel frattempo sono aumentati da 216 a 225. Ho limitato la stampa dei commenti a 2 (-l2) per evitare di dover di riportare sul blog tutti gli oltre 200 commenti. Quindi per stampare i commenti bisogna utilizzare la sintassi comments/xxxIDxxx L’id ovviamente è quello del post sopra. Di seguito come leggere i messaggi nella inbox**:

$ reddio p -l2 message/inbox

Mentre per leggere i messaggi privati sempre nella imbox ecco come fare:

$ reddio p -l2 message/messages 

Per leggere i dati del karma bisogna far seguire all’username la stringa about, così:

$ reddio p user/USERNAME_CHE_VI_INTERESSA/about
1648 comment karma
950 submission karma

Potete anche ottenere informazioni su un certo sub come su un utente sempre con la parola chiave about, così:

$ reddio p r/SecurityIT/about
r/SecurityIT t5_2v50ww
SecurityIT
A public subreddit with 33 subscriber(s) created 2 years ago
__________________________________________________

Parliamo di IT security in ITaliano. Questo sub nasce con l'obiettivo di diffondere la conoscenza 
dell'argomento al puro e semplice scopo di avere gli strumenti per potersi difendere. 
Non vengono caldeggiate ne promosse ne incentivate attività fuori dalla legge, al contrario 
l'obiettivo è proprio quello di opporsi a questo genere di abusi. L'idea romantica dell'hacker 
buono l'abbiamo spedita in soffitta da un bel po'.
__________________________________________________

Parliamo di IT security in ITaliano.

In questo modo si ottengono informazioni specifiche sul sub, come gli iscritti, l’età e la descrizione del sub. È possibile anche avere la lista dei post upvotati di un certo utente come segue:

$ reddio p -l3 user/leucalipto/upvoted

Ovviamente è possibile ottenere nello stesso modo i post downvotati, hidden oppure saved. Possiamo anche ottenere i post di un certo sub ma ordinati secondo un criterio differente, per esempio:

  • ordinati per hot (cioè molto discussi):

    $ reddio p -l3 r/SecurityIT/hot

  • ordinati per new (nuovi):

    $ reddio p -l3 r/SecurityIT/new

  • ordinati per rising (in ascesa):

    $ reddio p -l3 r/SecurityIT/rising

  • ordinati per controversial (ovviamente controversi)

    $ reddio p -l3 r/SecurityIT/controversial

  • ordinati per top (cioè i più discussi in un certo lasso di tempo):

    $ reddio p -l3 r/SecurityIT/top

Quindi, per quanto riguarda l’opzione print queste sono le cose principali. Se volete approfondire ecco un sunto dell’uso di print:

Common listings:
  comments/<id>
  r/<subreddit>/{hot,new,rising,controversial,top,gilded}
  r/<subreddit>/{about,comments}
  user/<yourname>/m/<multiname>/{hot,new,rising,controversial,top,gilded}
  user/<username>
  user/<username>/{about,comments,submitted,gilded}
  user/<username>/{upvoted,downvoted,hidden,saved}
  message/{inbox,unread,messages,comments,selfreply,mentions,sent}
  info/<id1>,<id2>,<id3>...
  by_id/<submission1_id>,<submission2_id>,<submission3_id>...

submit (come inviare post)

Passiamo al comando submit che, come già detto, possiamo abbreviare con su, ma non s in quanto si potrebbe confondere col comando save. Quindi per inviare un post con annesso un URL possiamo fare:

$ reddio subm -l ansa.it r/test Sito ansa
# sintassi:
# subm = submit
# -l ansa.it = questo è l'url che vogliamo postare
# r/test = questo è il subreddit su cui vogliamo postare
# Sito ansa = È il titolo del post
#

mentre per inviare un messaggio ad uno specifico sub si fa come segue:

$ reddio subm -t "Mio testo" r/test Mio titolo