icebnd / pyirkbot Goto Github PK
View Code? Open in Web Editor NEWThis project forked from serpis/pynik
Python ircbot with support for plugins and multiple networks.
License: Other
This project forked from serpis/pynik
Python ircbot with support for plugins and multiple networks.
License: Other
with all the new nice autoanswers such has "the martian length" => 2h22m
Big problems when one of the irc servers are not responding
http://www.google.com/search?rls=en&q=what+time+is+it+in+japan&ie=UTF-8&oe=UTF-8
=> "17:57 Monday (JST) - Time in Japan"
< s> I: gör en .ticket
< I> heh ja.. en .ticket för att skapa tickets vore nice
< L> jag bjuder en öl för .ticket också
< mr> .kolli xxxxxxx
< r> No result returned.
< mr> funkar inte på schenker :/
< I> är nog bara på posten..
< mr> vore ju grymt om den itererade igenom dom olika fraktbolagen dock
< mr> jag utlovar en öl när .kolli klarar schenker dhl och ups ;)
on the same line as the bot replies with with the topic of the page add a miniurl to the site
Options:
To repruduce just type:
.yr fruängen
Exected output:
09:17 < riverbot> Weather in Fruängen at 9.4
What i see instead;
09:17 < riverbot> Weather in Fruängen at
< M> I^: Juste, kan botnik ge op?
< I^> nope.. finns ingen sån plugin så vitt jag vet.. men du kan ju alltid skapa en
< I^> inte så besvärligt
< M> Okej. :)
< M> Nä.
< I^> :)
< I^> hur ska den funka då? op:a alla i en kanal? eller opa de som skriver ett lösenord? eller de med ett speciellt nick?
< I^> M: men om du specar lite vad för op grejer du vill att den ska göra så kanske jag lägger till det i pyirkbot... nångång :)
< I^> mao svarar på frågorna ovan
< M> I^: Okej. :)
< M> Den ska ge op till folk som antagligen ligger i en konfigfil (Vilket torde vara säkrast) eller när man skriver in ett lösenord.
< M> Och samma med voI kanske. :)
< I^> nu svarade du precis både och
< I^> ska det vara nickbaserat eller host baserat?
< M> Nick är lättast.
< M> Men lite osäkert. :P
< M> Kör på nick. :)
< M> Och sen konfigfil.
< M> Simplast så, sen ger den op vid join då också.
Låt botten kolla en mailadress (med imap) och när det kommer nya mail till den så spottar den ut sig det i den aktuella kanalen.
För att minska spam krävs ett token som kan fås av botten med kommandot .mailtoken som är per kanal&network
Förmodligen lämpligt att ratelimita antalet mail per minut och antalet tecken som går att skriva på detta sätt oxå.
Design:
[retriever mail/othersource] -> [verify token] -> [rate limit] -> [send]
.mailtoken =>
[rate limit][generate token per destination and sourcenick]
Token:
<token='base64(hmac_sha1(data) + pickle(["#chan", "network", "sourcenick"]))'>
[11:02:19] freenode RECV: PING :wilhelm.freenode.net
[11:02:19] freenode SENT: PONG :wilhelm.freenode.net
[11:02:21] freenode RECV: :[email protected] PART #c++.se
Traceback (most recent call last):
File "main.py", line 46, in
pdb.run(Tick())
File "main.py", line 34, in Tick
bot.tick()
File "/home/tech/ice/riverbot/ircbot.py", line 220, in tick
client.tick()
File "/home/tech/ice/riverbot/ircclient/ircclient.py", line 294, in tick
self.message_handlers[m.group(3)](m.group%280, 1, 2, 3, 4, 5%29)
File "/home/tech/ice/riverbot/ircclient/ircclient.py", line 216, in on_part
nick_lists[channel].remove(source_nick)
NameError: global name 'nick_lists' is not defined
/bin/sh: 1: aspell: not found
[11:12:22] Could not load data from file 'data/festern_bbq.txt' :(
ex:
.forex buy 1 chf sek
(.forex 1 chf in sek)
provide lunchinfo for lantis at stockholm university;
http://www.hors.se/restaurang-lantis
Might be interesting to provide info for all hörs restaurants;
http://www.hors.se/dagens-lunch
<+g> zikan du inte fixa så man kan ula å ladda .py själv ;)
<+g> I^:
<+g> skulle det vara
<@i^> g: jo.. har funderat på det.. men finns så dåliga sandbox möjligheter till python
<@i^> google har någon rätt sandboxad grej
<@i^> däremot konfat lite
<@i^> vet inte om googles sandbox grej är opensource dock...
<@i^> man vill ju ha något som liknar javas sandbox.. så man kan ställa in vilka hosts koden får kontakta.. och sen strippat++ python api
@m rpython kanske :p
<@i^> m: ?
@m restricted python
<@i^> vad heter närliggande på engelska?
<@i^> finns det?
<@i^> .google rpython
@r PyPy[coding-guide] - http://codespeak.net/pypy/dist/pypy/doc/coding-guide.html | http://www.google.com/search?rls=en&q=rpython&ie=UTF-8&oe=UTF-8
@m mja, fast jag vet inte hur pass fristående det ä
<@i^> verkar inte vara något sandboxat utan bara starkttypat och typ python
<@i^> RPython is statically typed, to allow efficient compilation.[2]
<@i^> http://wiki.python.org/moin/How%20can%20I%20run%20an%20untrusted%20Python%20script%20safely%20%28i.e.%20Sandbox%29
@r How can I run an untrusted Python script safely (i.e. Sandbox) - PythonInfo Wiki
<@i^> varkar som pypy har lite sandboxing grejer
@m pypy är coolt
<@i^> vore lite coolt att skriva sånt stöd för R.. så kan man låta alla skriva typ .load http://myevilcode.com/code.py och lägga till egna kommandon
<@i^> lite jobbigt om man ska tillåta webintegrationer dock.. måste man nog skriva något eget för att hantera det
@l mm, med ratelimit
<@i^> mm
<@i^> fast sen vill man ju inte att g ska skriva något som crawlar hela internet heller
<@i^> eller L
@l du skulle ju kunna kräva förregistrering också, så man kan blama
<@i^> mjo är en id
@l I^: det får man ju sköta med en generell koll på exekveringstid
<@i^> skulle kunna skriva ett .py kommando oxå som kör oneliners i python
<@i^> skulle vara rätt användbart
<@i^> mm kan ju (förhoppningsvis) säga att det bara ska köra koden i typ 5 sekunder eller s
@l I^: tar det längre än x sekunder så är det inte värt det, slår den i spärren fler än n gånger laddas den ur och personens privilegier suspendas
<@i^> vettig id
<@i^> idéer
<@i^> http://codespeak.net/pypy/dist/pypy/doc/sandbox.html
< I> L: måste implementera .cookie funktionen alltså
< M> .beer
< I> så kan man ha en cookiestat sen oxå =)
< L> alla får så många kakor det finns i en förpackning med 38% godare kakor
< L> från början :)
< I> L: mm frågan är om man vill att alla ska börja på 0 och sen "tar man" av sin egen hög för att ge till andra
< I> eller om alla får ge hur mycket kakor som helst
< I> och tracka skulden bara
< I> tex L skyldig M 2 kakor
< M> man måste ju ha en begränsad pool av kakor
< M> ge alla 10 kakor att börja med
< M> sen får man ge varandra
< L> I: man kan ju inte starta en ekonomi utan tillgångar, KOMMUNIST!
< I> jo fast det är ju skulder
< I> och jag kan ju säga att jag är skyldig L 100000 kakpengar om jag vill ?
< L> I: du får skapa en riksbank där man får borga sina kakor i verkliga kakor :)
< I> L: vi binder ju värdet för cookies mot verkliga kakor i välrden
< I> så finns ju ingen risk att värdet på cookies minskar drastiskt
< I> så .cookie blir bara ett skuldhanteringsätt
< L> först indikerar jag en skuld genom att registerar en kaktransaktion i botten, sedan ger jag en kaka till M, skall han då konfirmera
detta,e ller kan jag göra det?
< I> L: tja.. kan ju testa med att alla får höja och sänka sina skulder
< I> för stor risk att folk bara testar och skriva
< I> .cookie L
< I> "give one cookie to L, you now owe L oo cookies"
< I> .clearcookie L
< I> "repayed one cookie to L, ..."
< M> .cookiestats
< I> M: mmm
< I> .cookiestats L
gammle.yr.no is being closed down by end of april/may and will stop working..
Rewrite yrno plugin with using their api instead and google for mapping city to coordinates..
https://code.google.com/apis/maps/documentation/geocoding/
< s> jag utlovar en öl när kommandolistningen funkar bra
< I> för man vill ju knappast att när nån skriver .commands så fylls 40 rader med kommandon
< s> punktlista! :P
< s> skicka dem i PM då
< s> utan att spamma i kanalen
< s> när output > 250 chars -> PM
Feature: The ability to list and remove compliments / insults via f.e. a privmessage to the bot.
Reason: Some of the insults are compliments and or suck.
http://lumberjaph.net/blog/index.php/2010/03/07/github-explorer-a-preview/
[10:07:02] Plugin '<TitleReaderPlugin []>' threw exception, exinfo: '(<type 'exceptions.ValueError'>, ValueError('chr() arg not in range(256)',), <traceback object at 0x2893da54>)', traceback: '[('/plugins/utility.py', 19, 'fromhtml', 'except KeyError: return chr(int(s.group(1)))'), ('/usr/local/lib/python2.5/re.py', 150, 'sub', 'return _compile(patt
Z> http://whatever/
Z> .reload
R> Reloaded and good to go!
Z> .title
R> I haven't seen any urls here yet.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.