Oktatás * Programozás 2 * Szkriptnyelvek * levelezősök Félévek Linkek * kalendárium |
Py /
20121005cTroll BotKészítsünk egy olyan bot-ot, mely a Reddit-en trollkodik, vagyis beszól a többi felhasználónak. Ehhez a feladathoz több dolgot is ismernünk kell. Nézzük sorba őket. A Reddit egy népszerű linkgyűjtő oldal. Regisztráció után mi is tudunk híreket beküldeni illetve kommentelhetjük a mások által beküldött híreket. A Redditről az Index is áradozott néhány napja. A Reddit rendelkezik egy API-val, aminek a segítségével egy programból is kommunikálni lehet az oldallal. Például le tudjuk vele kérdezni a legutóbbi 10 hírt. Pythonhoz készült egy könyvtár, mely a Reddit API-ján keresztül kommunikál az oldallal. A Python csomag neve PRAW ("Python Reddit API Wrapper") s itt érhető el: https://github.com/praw-dev/praw. Twitter Bot A beszólogatós bot eredetileg Twitterhez készült, részletes blogposzt itt. A bot a következőképpen működik (vázlat):
A poén az, hogy mindenki azt hiszi, hogy egy igazi ember válaszolt a posztjára. Érdemes megnézni, hogy ez milyen reakciókat vált ki egyesekből :) Példa: Eredeti poszt: I forgot whether my next tweet was supposed to be funny or agressive, so here, read this one instead. A bot válasza: "agressive"? Pretty embarrassing really, @farari7u. It's actually "aggressive". A bot többféle vicces választ is tud adni, ezek mindegyike egy-egy template alapján készül. Például az előző valahogy így nézne ki: template1 = '"{bad}"? Pretty embarrassing really, {user}. It\'s actually "{good}".' # tényleges sztring előállítása: return template1.format(bad=..., good=..., user=...) A Twitterhez is van egy Python könyvtár, a bot ezt használva tud üzeneteket lekérni, ill. üzeneteket posztolni. Feladat A feladatunk az lenne, hogy készítsük el a Twitter Bot Reddit-es változatát. A botnak hozzunk létre egy reddit-es felhasználói nevet, ne a saját nevünk alól futtassuk :) Először ismerjük ki a PRAW könyvtárat: hogyan tudjuk a főoldal sztorijait lekérni, hogyan tudjuk egy sztori kommentjeit lekérni, hogyan tudjuk egy komment tartalmát lekérni, hogyan tudunk egy kommentre válaszolni. Ezután írjuk meg a botot ami előállítja és elküldi a választ. A reddit-en minden objektumnak (poszt, komment, stb.) van egy egyedi azonosítója. Ha egy kommentre válaszoltunk, akkor az eredeti komment ID-jét le kell tárolni vhol, hogy ugyanarra ne válaszoljunk többször. Ne vigyük túlzásba a dolgot, ne haragítsuk magunkra a reddit közösséget :) |
Blogjaim, hobbi projektjeim * The Ubuntu Incident [ edit ] |