Reddit este o rețea socială care, în ultimii ani, a explodat în popularitate. Modelul de conținut al utilizatorului este un loc minunat pentru a găsi știri, umor, lucruri pe care niciodată nu știați că doriți să le cunoașteți și câteva lucruri pe care nu le puteți vedea niciodată. E minunat!
O mare parte din popularitatea lui Reddit provine din noțiunea de sub-reddits. Acestea nu sunt altceva decât posturi concentrate împreună de o persoană obișnuită, loc, element sau ideal. De exemplu, unul dintre cele mai populare sub-reddits până în prezent este r / aww. Un sub-reddit umplut cu nimic altceva decât poze cu animale adorabile.
Dacă a existat doar o modalitate de a naviga la Reddit la locul de muncă fără a atrage prea multă atenție asupra dvs. (sau a ecranului).
În acest tutorial, vă voi arăta cum să navigați pe Reddit din Terminal. O sa inveti:
Primul lucru pe care trebuie să-l cunoașteți este cum să transmiteți mesaje către terminal și cum să obțineți intrarea utilizatorului de la terminal. Aceste metode sunt devine
și puts
, respectiv.
Ori de câte ori doriți să ieșiți ceva pe ecran, utilizați puts
și introduceți textul în ghilimele. Oricând trebuie să obțineți informații de la utilizator, utilizați devine
metodă.
Acum aveți nevoie de o modalitate de a stoca orice intrare a utilizatorului. Pentru aceasta, veți utiliza variabile. Pentru a declara o variabilă, dați-i un nume, apoi inițiați-o urmând-o cu un = și adăugați în cele din urmă o valoare pentru a stoca în ea.
Deci, primele linii ale programului trebuie citite astfel:
pune "Ce subredit? Exemplu: / r / aww put aww" sub = get.chomp! .downcase pune "Obținerea posturilor de top pentru / r / # sub."
În prima linie, salutați utilizatorul și îi cereți să aleagă un sub-reddit. În a doua linie, creați variabil Sub
și oferindu-i valoarea oricăror tipuri de utilizatori din.
Chomp!
și downcase
metode doar să eliminați spațiile albe și să faceți toate literele mici, ceea ce adaugă un pic de coerență. Puteți include această variabilă oriunde în ieșire prin împachetarea acesteia #
. Aceasta se numește interpolare de șir.
JSON înseamnă Notă de obiect Javascript. În termeni simpli, este doar o modalitate excelentă de a apuca toate datele dintr-un anumit site (care are un JSON API în loc) fără toate marcajul suplimentar sau stilul.
În terminal, nu doriți niciun stil sau marcare; doar datele. Așa că JSON se potrivește bine aici.
API-ul JSON API al lui Reddit este mort simplu de utilizat. Adăugați a .JSON
la orice URL Reddit pe care l-ați introduce în browserul web. Ca exemplu: pentru a obține feedul / r / aww JSON, mergeți la http://www.reddit.com/r/aww.json.
Sunt multe date. Din fericire, Ruby are deja o modalitate simplă de a analiza JSON și de a vă oferi doar informațiile de care aveți nevoie.
Pentru a obține feedul și pentru al analiza, va trebui să instalați câteva biblioteci Ruby existente. În terminal rulați următoarele comenzi:
gem instala faraday
gem instalați json
Apoi adăugați următoarele linii în partea superioară a fișierului:
cere "faraday" necesită "json"
Faraday vă va permite să utilizați Ruby pentru a efectua apeluri la adrese URL de pe internet și JSON vă va ajuta să analizați informațiile pe care le primiți înapoi. Odată ce aveți aceste noi biblioteci disponibile, puteți folosi următorul cod pentru:
#Brike în plus libs necesită 'faraday' necesită 'json' #Greet utilizatorul pune "What subreddit? Exemplu: Pentru r / aww, tastați aww" sub = get.chomp! .To_s.downcase #Output răspuns pune " mesajele de top pentru / r / # sub. " #Get feedul JSON al redditului răspuns selectat = Faraday.get "http://www.reddit.com/r/#sub.json" json_response = JSON.parse răspuns.body posturi = json_response ['data'] [ copii ']
Pentru a itera (sau buclă) peste fiecare dintre postările pe care le primiți înapoi și afișați fiecare într-un format lizibil. Faceți acest lucru folosind o buclă. Iată codul care îndeplinește acea sarcină:
i = 1 posts.take (10) post = p ['data'] pune "# i" + post ['title'] pune "Ups: # post ['ups'] : # post ['scor'] "pune" i + = 1 capăt
Dacă doriți să vă oferiți opțiunea de a deschide una dintre postările din browserul implicit al aplicației Mac gem instalați lansat
.
Apoi adăugați-l în lista celorlalte biblioteci pe care le includeți adăugând cere "lansare"
în partea de sus a fișierului.
În sfârșit, adăugați această bucată de cod sub buclă:
Opțiunea #Present pentru a lansa orice post în browserul implicit pune "Doriți să deschideți oricare dintre acestea? Alegeți numărul de deschis sau răspundeți" Nu "" open_url = get.chomp! .To_s dacă open_url.downcase == "nu" || open_url.to_i> 10 pune "ok" altceva Launchy.open posturi [open_url.to_i - 1] ['data'] ['url'] end
Scriptul complet ar trebui să arate astfel:
#Brike în plus libs necesită 'faraday' necesită 'json' necesită 'launchy' #Greet utilizatorul pune "Hi! What subreddit? Exemplu: Pentru r / aww, pur și simplu tastați aww" sub = gets.chomp! .To_s.downcase # Rezultatul răspunsului pune "Obținerea posturilor de top pentru / r / # sub." #Get feedul JSON al redditului răspuns selectat = Faraday.get "http://www.reddit.com/r/#sub.json" json_response = JSON.parse răspuns.body posturi = json_response ['data'] [ copii]] #Iterați pe feed și scoateți posturile i = 1 posts.take (10). post = p ['data'] pune "# i" + post ['title'] pune "Ups: # post ['ups'] : # post ['scor'] "pune" i + = 1 capăt #Presenta opțiune pentru a lansa orice post în browser implicit pune "Doriți să deschideți oricare dintre acestea? Alegeți numărul de deschidere sau răspundeți "Nu" "open_url = get.chomp! .To_s dacă open_url.downcase ==" nu "|| open_url.to_i> 10 pune" ok "altceva Launchy.open posts [open_url.to_i - 1] ['data'] ['url'] sfârșit
Salvați fișierul ca check_reddit.rb în Documente pliant. Pentru a rula scriptul, deschideți Terminal și fugi rubin ~ / Documente / check_reddit.rb
.
Să poți alerga rubin ~ / Documente / check_reddit.rb
este bine și bine, dar ar fi mai bine dacă ai putea să tipi check-reddit
în terminal și să aibă scriptul rulați magic.
Pentru a realiza acest lucru, puteți alias cuvântul check-reddit
la comandă rubin ~ / Documente / check_reddit.rb
. În rularea terminalului nano ~ / .bash_profile
. Aceasta va încărca bash_profile
fișier într-un editor de text.
Săgeată în jos pentru a muta cursorul sub orice text existent și adăugați alias check-reddit = "ruby ~ / Documents / check_reddit.rb"
la o nouă linie.
Pentru a ieși și a salva fișierul apăsați Control-X. Vi se va solicita salvarea modificărilor. apasă pe Y cheie atunci Întoarcere a confirma. Fugiți a sursă ~ / .bash_profile
pentru a reîncărca bash_profile
în Terminal.
De acum înainte, vei putea să fugi check-reddit
în terminal pentru a naviga în stil.
Abilitatea de a vedea primele 10 posturi în orice sub Reddit prin terminal este minunat. Vă permite să navigați rapid pe Reddit, fără a vă atrage atenția asupra dvs. și chiar o face să pară că sunteți foarte greu la locul de muncă.
De-a lungul modului în care ați luat câteva abilități de bază Ruby și JSON. Buna treaba!