mirror of
https://github.com/RussellChamp/tilde-projects.git
synced 2026-10-28 00:22:34 +00:00
Add files I forgot
This commit is contained in:
1 parent
5f1bf146c3
commit
772995c0ff
29 files changed
+1807
No files matched your search
@@ -0,0 +1,95 @@
|
||||
#!/usr/bin/python3
|
||||
|
||||
import inflect
|
||||
import random
|
||||
|
||||
scores_file = "/home/krowbar/Code/irc/data/topicscores.txt"
|
||||
channel_topics = "/home/krowbar/Code/irc/data/topics_{}.txt"
|
||||
random_topics = "/home/krowbar/Code/irc/data/randomtopics.txt"
|
||||
|
||||
p = inflect.engine()
|
||||
|
||||
def get_topic(channel, user, time):
|
||||
# topic scores are saved as <USER>&^%<GETS SCORE>&^%<SETS SCORE>
|
||||
with open(scores_file, "r") as scorefile:
|
||||
scores = scorefile.readlines()
|
||||
userscore = 1
|
||||
found = False
|
||||
with open(scores_file, "w") as scorefile:
|
||||
for idx, score in enumerate(scores):
|
||||
data = score.strip("\n").split("&^%")
|
||||
if data[0] == user:
|
||||
found = True
|
||||
userscore = int(data[1]) + 1
|
||||
scores[idx] = data[0] + "&^%" + str(userscore) + "&^%" + data[2] + "\n"
|
||||
scorefile.writelines(scores)
|
||||
if not found:
|
||||
scorefile.write(user + "&^%1&^%0\n")
|
||||
|
||||
with open(channel_topics.format(channel), "r") as topics:
|
||||
topic = topics.readlines()[-1].strip("\n").split("&^%", 3)
|
||||
byuser = util.get_name(topic[1])
|
||||
return "I've told you {} times! It's \"{}\" (set by {} {})".format(
|
||||
p.number_to_words(userscore),
|
||||
topic[2],
|
||||
byuser,
|
||||
util.pretty_date(int(topic[0])),
|
||||
)
|
||||
|
||||
|
||||
def count_topic(channel, user, time, msg):
|
||||
with open(channel_topic.format(channel), "a") as topics:
|
||||
topics.write(time + "&^%" + user + "&^%" + msg + "\n")
|
||||
with open(scores_file, "r") as scorefile:
|
||||
scores = scorefile.readlines()
|
||||
userscore = 1
|
||||
found = False
|
||||
with open(scores_file, "w") as scorefile:
|
||||
for idx, score in enumerate(scores):
|
||||
data = score.strip("\n").split("&^%")
|
||||
if data[0] == user:
|
||||
found = True
|
||||
userscore = int(data[2]) + 1
|
||||
scores[idx] = data[0] + "&^%" + data[1] + "&^%" + str(userscore) + "\n"
|
||||
scorefile.writelines(scores)
|
||||
if not found:
|
||||
scorefile.write(user + "&^%0&^%1")
|
||||
return "{} has changed the topic {} times!".format(user, p.number_to_words(userscore))
|
||||
|
||||
|
||||
def set_topic(channel, user, time, msg):
|
||||
ircsock.send("TOPIC " + channel + " :" + msg + "\n")
|
||||
return count_topic(channel, user, time, msg)
|
||||
|
||||
|
||||
def random_topic(channel, user, time, setTopic=False):
|
||||
with open(random_topics) as rtopics:
|
||||
msg = random.choice(rtopics.readlines()).strip("\n")
|
||||
if setTopic:
|
||||
set_topic(channel, user, time, msg)
|
||||
else:
|
||||
return "Suggested Topic: {}".format(msg)
|
||||
|
||||
|
||||
def rollcall(channel):
|
||||
return "topicbot reporting! I respond to !topic !settopic !suggesttopic !thistory"
|
||||
|
||||
|
||||
def topic_history(channel, user, count):
|
||||
try:
|
||||
iCount = int(count.split()[1])
|
||||
except (ValueError, IndexError):
|
||||
iCount = 3
|
||||
if iCount > 10:
|
||||
iCount = 10
|
||||
if iCount < 1:
|
||||
iCount = 3
|
||||
|
||||
with open(channel_topics.format(channel), "r") as topicsfile:
|
||||
message = "Ok, here are the last {} topics".format(p.number_to_words(iCount))
|
||||
for idx, topic in enumerate(reversed(topicsfile.readlines()[-iCount:])):
|
||||
topic = topic.strip("\n").split("&^%", 3)
|
||||
byuser = util.get_name(topic[1])
|
||||
message += "\n{}: {} (set by {} {})".format( str(idx + 1), topic[2], byuser, util.pretty_date(int(topic[0])) )
|
||||
|
||||
return message
|
||||
Reference in new issue
Block a user