View Single Post
Imgbot er en IRC-bot som snapper opp lenker som blir sagt i en chat-kanal. Den er ikke bare begrenset til bilder, men tar også screenshot av hele nettsider ved hjelp av PhantomJS (eksempler: freak.no og eBay), og fungerer dermed også som en cache i tilfelle den originale siden slettes eller endres. Resultatet kan sees i et separat galleri, hvor det da blir mulig å følge med på lenker som diskuteres på IRC-kanalen. Koden har blitt tilpasset etter å ha kjørt boten på en kanal med rundt 50 brukere i to år, hvor det har kommet over 28.000 lenker i løpet av perioden.

Nå som ##freak @ Freenode har våknet til live igjen for alvor, har kanalen fått sin egen versjon av boten.
Galleriet for #freak nås på http://nff.poopr.ru, og stikk gjerne innom kanalen for å prate med en masse hyggelige mennesker! Helk har tidligere skrevet en teskjeguide for IRC, og det er også en webklient tilgjengelig ved å trykke på Chat-knappen i menyen.

Vil gjerne ha feedback på konseptet og flere idéer. Og ikke minst, tar jeg gjerne i mot tips og råd om hvordan Imgbot-prosjektet kan forbedres når det kommer til bruken av Ruby, for jeg er gira på å lære hvordan litt større prosjekter med plugins og mange klasser burde utformes.

Merk at galleriet bare er en raskt hacket sammen demo for å kunne vise det boten fanger opp, og jeg er veldig interessert i å bytte denne ut med noe bedre. Helst skulle jeg fått konsolidert de to prosjektene til ett, slik at felles config slik som database kan gjøres ett sted.

Noen features:
  • Tar screenshot av nettsider for å ha en kopi som kan sees i galleriet. Fungerer svært bra for sider uten animert innhold.
  • Laster ned lenker som inneholder bilder.
  • Kontekst på lenker. Context-knappen i galleriet tar deg til et view som viser fem linjer med chat over og under lenken som blir sagt, sånn at det er mulig å se hvilken sammenheng lenken dukket opp i.
  • Imgur-lenker håndteres likt uansett om det lenkes til imgur.com/id eller i.imgur.com/id.extension, og hvis en lenke inneholder kun ett bilde blir denne brukt som thumbnail.
  • Caching av albumer og gallerier på Imgur, dvs. at hvis det er flere bilder, så lastes disse ned individuelt og kan sees med Cache-knappen i galleriet, sammen titlene og beskrivelsene. Eksempel: http://nff.poopr.ru/gallery/85
  • Apina.biz håndteres likt uansett om man linker til apina.biz/id, apina.biz/id.extension eller termite.apcdn.com/full/id.extension.
  • Fetlife-bilder får lenke til profilen de kommer fra i galleriet.
  • Facebook-bilder får svært ofte fungerende lenke til kildesiden eller profilen.
  • På bildr.no, picz.no og imma.gr hentes selve bildet ut og brukes som thumbnail selv om det ikke linkes til bildet direkte.
  • Youtube-videoer embeddes i galleriet.
  • På subreddits med «Over 18»-advarsel trykkes denne på før boten tar screenshot.
  • Bilder fra bloggfiler.no får lenke til kildebloggen i galleriet.
  • Mulighet for å lage plugins (er der funksjonaliteten for f.eks. Facebook, Fetlife, Reddit, osv. ligger) som kan override thumbnailet til galleriet, navigere rundt på sider før screenshotet tas, etc.

Har lagt ut koden og instrukser på Bitbucket under MIT-lisens (ønsker at koden skal kunne brukes mest mulig fritt). Koden ble i utgangspunktet skrevet som en PoC i Ruby, men jeg tror jeg har greid å få til noe som andre kan bruke også. Prosjektet består av selve boten og demogalleriet.
Imgbot: https://bitbucket.org/Nichotin/imgbot
Galleriet: https://bitbucket.org/Nichotin/gulallery
Sist endret av Nichotin; 5. mai 2017 kl. 08:02.