last commit
This commit is contained in:
parent
e013a50711
commit
7dca597a2a
|
@ -2,3 +2,5 @@ NIGGER DICKS
|
||||||
NIGGER DICKS
|
NIGGER DICKS
|
||||||
NIGGER DICKS
|
NIGGER DICKS
|
||||||
NIGGER DICKS
|
NIGGER DICKS
|
||||||
|
|
||||||
|
Now deprecated in favor of https://git.steelbea.me/iou1name/fulvia
|
||||||
|
|
3
bot.py
3
bot.py
|
@ -1,5 +1,4 @@
|
||||||
#! /usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
# -*- coding: utf-8 -*-
|
|
||||||
"""
|
"""
|
||||||
The core bot class. Say good bye to PYthon 2.
|
The core bot class. Say good bye to PYthon 2.
|
||||||
"""
|
"""
|
||||||
|
|
|
@ -9,9 +9,6 @@ import sys
|
||||||
|
|
||||||
from tools import itervalues, get_command_regexp
|
from tools import itervalues, get_command_regexp
|
||||||
|
|
||||||
if sys.version_info.major >= 3:
|
|
||||||
basestring = (str, bytes)
|
|
||||||
|
|
||||||
# Can be implementation-dependent
|
# Can be implementation-dependent
|
||||||
_regex_type = type(re.compile(''))
|
_regex_type = type(re.compile(''))
|
||||||
|
|
||||||
|
@ -166,13 +163,13 @@ def clean_callable(func, config):
|
||||||
if not hasattr(func, 'event'):
|
if not hasattr(func, 'event'):
|
||||||
func.event = ['PRIVMSG']
|
func.event = ['PRIVMSG']
|
||||||
else:
|
else:
|
||||||
if isinstance(func.event, basestring):
|
if isinstance(func.event, (str, bytes)):
|
||||||
func.event = [func.event.upper()]
|
func.event = [func.event.upper()]
|
||||||
else:
|
else:
|
||||||
func.event = [event.upper() for event in func.event]
|
func.event = [event.upper() for event in func.event]
|
||||||
|
|
||||||
if hasattr(func, 'rule'):
|
if hasattr(func, 'rule'):
|
||||||
if isinstance(func.rule, basestring):
|
if isinstance(func.rule, (str, bytes)):
|
||||||
func.rule = [func.rule]
|
func.rule = [func.rule]
|
||||||
func.rule = [compile_rule(nick, rule) for rule in func.rule]
|
func.rule = [compile_rule(nick, rule) for rule in func.rule]
|
||||||
|
|
||||||
|
@ -213,7 +210,7 @@ def clean_module(module, config):
|
||||||
shutdowns = []
|
shutdowns = []
|
||||||
jobs = []
|
jobs = []
|
||||||
urls = []
|
urls = []
|
||||||
for obj in itervalues(vars(module)):
|
for key, obj in dict.items(vars(module)):
|
||||||
if callable(obj):
|
if callable(obj):
|
||||||
if getattr(obj, '__name__', None) == 'shutdown':
|
if getattr(obj, '__name__', None) == 'shutdown':
|
||||||
shutdowns.append(obj)
|
shutdowns.append(obj)
|
||||||
|
|
|
@ -1,9 +1,6 @@
|
||||||
# coding=utf-8
|
#!/usr/bin/env python3
|
||||||
"""
|
"""
|
||||||
announce.py - Send a message to all channels
|
Sends a message to all channels the bot is currently in.
|
||||||
Copyright © 2013, Elad Alfassa, <elad@fedoraproject.org>
|
|
||||||
Licensed under the Eiffel Forum License 2.
|
|
||||||
|
|
||||||
"""
|
"""
|
||||||
from module import commands, example
|
from module import commands, example
|
||||||
|
|
||||||
|
@ -12,7 +9,7 @@ from module import commands, example
|
||||||
@example('.announce Some important message here')
|
@example('.announce Some important message here')
|
||||||
def announce(bot, trigger):
|
def announce(bot, trigger):
|
||||||
"""
|
"""
|
||||||
Send an announcement to all channels the bot is in
|
Send an announcement to all channels the bot is in.
|
||||||
"""
|
"""
|
||||||
if not trigger.admin:
|
if not trigger.admin:
|
||||||
bot.reply('Sorry, I can\'t let you do that')
|
bot.reply('Sorry, I can\'t let you do that')
|
||||||
|
|
|
@ -9,7 +9,6 @@ import random
|
||||||
from module import commands, example
|
from module import commands, example
|
||||||
|
|
||||||
@commands("grog")
|
@commands("grog")
|
||||||
@example(".grog")
|
|
||||||
def grog(bot, trigger):
|
def grog(bot, trigger):
|
||||||
"""
|
"""
|
||||||
Picks a random status effect from Grog of Substantial Whimsy effect.
|
Picks a random status effect from Grog of Substantial Whimsy effect.
|
||||||
|
|
|
@ -36,7 +36,8 @@ def roomTemp(bot, trigger):
|
||||||
"""
|
"""
|
||||||
try:
|
try:
|
||||||
res = requests.get("http://192.168.1.25/", timeout=10)
|
res = requests.get("http://192.168.1.25/", timeout=10)
|
||||||
time.sleep(0.5)
|
del res
|
||||||
|
time.sleep(1.5)
|
||||||
res = requests.get("http://192.168.1.25/", timeout=10)
|
res = requests.get("http://192.168.1.25/", timeout=10)
|
||||||
except requests.exceptions.ReadTimeout:
|
except requests.exceptions.ReadTimeout:
|
||||||
return bot.say("Connection error. Timeout reached.")
|
return bot.say("Connection error. Timeout reached.")
|
||||||
|
|
|
@ -15,11 +15,6 @@ import pytz
|
||||||
from module import commands, example, NOLIMIT
|
from module import commands, example, NOLIMIT
|
||||||
from tools.time import get_timezone, format_time
|
from tools.time import get_timezone, format_time
|
||||||
|
|
||||||
def filename(self):
|
|
||||||
name = self.nick + '-' + self.config.core.host + '.reminders.db'
|
|
||||||
return os.path.join(self.config.core.homedir, name)
|
|
||||||
|
|
||||||
|
|
||||||
def init_database(bot):
|
def init_database(bot):
|
||||||
"""
|
"""
|
||||||
Initializes the 'remind' table in the bot's database. Does nothing if
|
Initializes the 'remind' table in the bot's database. Does nothing if
|
||||||
|
|
|
@ -28,8 +28,8 @@ r_bing = re.compile(r'<h3><a href="([^"]+)"')
|
||||||
|
|
||||||
def bing_search(query, lang='en-GB'):
|
def bing_search(query, lang='en-GB'):
|
||||||
base = 'http://www.bing.com/search?mkt=%s&q=' % lang
|
base = 'http://www.bing.com/search?mkt=%s&q=' % lang
|
||||||
bytes = requests.get(base + query)
|
res = requests.get(base + query)
|
||||||
m = r_bing.search(bytes)
|
m = r_bing.search(res.text)
|
||||||
if m:
|
if m:
|
||||||
return m.group(1)
|
return m.group(1)
|
||||||
|
|
||||||
|
@ -39,12 +39,12 @@ r_duck = re.compile(r'nofollow" class="[^"]+" href="(?!https?:\/\/r\.search\.yah
|
||||||
def duck_search(query):
|
def duck_search(query):
|
||||||
query = query.replace('!', '')
|
query = query.replace('!', '')
|
||||||
uri = 'http://duckduckgo.com/html/?q=%s&kl=uk-en' % query
|
uri = 'http://duckduckgo.com/html/?q=%s&kl=uk-en' % query
|
||||||
bytes = requests.get(uri)
|
res = requests.get(uri)
|
||||||
if 'requests-result' in bytes: # filter out the adds on top of the page
|
if 'requests-result' in res.text: # filter out the adds on top of the page
|
||||||
bytes = bytes.split('requests-result')[1]
|
res.text = rex.text.split('requests-result')[1]
|
||||||
m = r_duck.search(bytes)
|
m = r_duck.search(res.text)
|
||||||
if m:
|
if m:
|
||||||
return requests.decode(m.group(1))
|
return res.text
|
||||||
|
|
||||||
# Alias google_search to duck_search
|
# Alias google_search to duck_search
|
||||||
google_search = duck_search
|
google_search = duck_search
|
||||||
|
|
|
@ -22,11 +22,11 @@ def setup(bot):
|
||||||
watching = cur.execute("SELECT * FROM watcher").fetchall()
|
watching = cur.execute("SELECT * FROM watcher").fetchall()
|
||||||
except:
|
except:
|
||||||
cur.execute("CREATE TABLE watcher("
|
cur.execute("CREATE TABLE watcher("
|
||||||
"api_url STRING PRIMARY KEY,"
|
"api_url TEXT PRIMARY KEY,"
|
||||||
"name STRING DEFAULT 'Anonymous',"
|
"name TEXT DEFAULT 'Anonymous',"
|
||||||
"last_post INT,"
|
"last_post INT,"
|
||||||
"time_since STRING,"
|
"time_since TEXT,"
|
||||||
"channel STRING)")
|
"channel TEXT)")
|
||||||
cur.commit()
|
cur.commit()
|
||||||
else:
|
else:
|
||||||
for thread in watching:
|
for thread in watching:
|
||||||
|
|
Loading…
Reference in New Issue
Block a user