Cinch-Tell 0.0.4 → 0.0.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/LICENSE +1 -1
- data/lib/cinch/plugins/tell/version.rb +1 -1
- data/lib/cinch/plugins/tell.rb +13 -7
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 35e8cea7fd8e9036ac37189981efd9e655b7a4e4
|
4
|
+
data.tar.gz: d50246c1b4b1a593395c741f10d8a5ce1b77ade1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e51c31376a35d3627ba0c1d18629a1f2ca7b57595a061ec47d8777ac398309db3cecb66e54a9c3fdfe3e472cfc724e6de0ad841abaabcef578ae4a440e1fa14b
|
7
|
+
data.tar.gz: 5f74ac931e1eec12ca5de38874e632cc4b997feb9e02a8bc8f6a13d58861bfda31cc35b4f67b4537af4946c831270dea88e60ad01d8433029250fb4a837a8381
|
data/LICENSE
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
The MIT License (MIT)
|
2
2
|
|
3
|
-
Copyright (c) 2016 Lily
|
3
|
+
Copyright (c) 2016 Lily Jónsdóttir / Lily Seki
|
4
4
|
|
5
5
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
6
|
of this software and associated documentation files (the "Software"), to deal
|
data/lib/cinch/plugins/tell.rb
CHANGED
@@ -18,10 +18,14 @@ module Cinch
|
|
18
18
|
listen_to :join, method: :check_tells
|
19
19
|
listen_to :nick, method: :check_tells
|
20
20
|
|
21
|
+
# I don't actually know if this does anything with cinch
|
22
|
+
# but I keep anything that's not an actual command private
|
21
23
|
private
|
22
24
|
|
23
25
|
def initialize(*args)
|
24
26
|
super
|
27
|
+
# TODO: make database name based on bot nick
|
28
|
+
# or configuration variable
|
25
29
|
@db = Sequel.sqlite('riria.db')
|
26
30
|
# Create the tables if they don't exist
|
27
31
|
@db.create_table? :tells do
|
@@ -34,11 +38,8 @@ module Cinch
|
|
34
38
|
@db = purge_ancients(@db)
|
35
39
|
end
|
36
40
|
|
37
|
-
def header(title)
|
38
|
-
puts '=' * 5 + " #{title} " + '=' * 5
|
39
|
-
end
|
40
|
-
|
41
41
|
def read_tells(nick)
|
42
|
+
# read the database and return array of tells for specified nick
|
42
43
|
tells = @db[:tells]
|
43
44
|
ret = tells.where(to_user: nick).all
|
44
45
|
return [] if ret.empty?
|
@@ -47,7 +48,6 @@ module Cinch
|
|
47
48
|
|
48
49
|
def parse_tells(tell)
|
49
50
|
# ready tell for telling
|
50
|
-
to_nick = tell[:to_user]
|
51
51
|
from_nick = tell[:from_user]
|
52
52
|
msg = tell[:message]
|
53
53
|
msg_when = tell[:time]
|
@@ -65,17 +65,18 @@ module Cinch
|
|
65
65
|
ago_str << 'ago.' unless ago_str.empty?
|
66
66
|
ago_str = 'an undetermined amount of time ago.' if ago_str.empty?
|
67
67
|
output << ago_str
|
68
|
-
# feels odd without "return output" but I guess that's Ruby
|
69
68
|
end
|
70
69
|
|
71
70
|
def purge_ancients(db)
|
72
71
|
# purge any messages older than x date
|
72
|
+
# TODO: make this a config variable
|
73
73
|
purge_date = Time.now.shift(-6, :months)
|
74
74
|
db[:tells].where('time < ?', purge_date.to_f).delete
|
75
75
|
db
|
76
76
|
end
|
77
77
|
|
78
78
|
def add_tell(nick, msg, from)
|
79
|
+
# add a tell to the database
|
79
80
|
t = Time.now.to_f
|
80
81
|
@db[:tells].insert(to_user: nick, from_user: from, message: msg, time: t)
|
81
82
|
end
|
@@ -83,6 +84,11 @@ module Cinch
|
|
83
84
|
public
|
84
85
|
|
85
86
|
def check_tells(m)
|
87
|
+
# Listen to join and nick changes, and check if user has any waiting
|
88
|
+
# memos in the database. Might listen to all messages and check if
|
89
|
+
# speaking user has any waiting memos, for people who go away
|
90
|
+
# but don't change their nick, but I'm not sure if I want to query
|
91
|
+
# the database at every IRC message in every channel
|
86
92
|
tells = read_tells(m.user.nick.downcase)
|
87
93
|
return if tells.empty?
|
88
94
|
r = parse_tells(tells.first)
|
@@ -94,7 +100,7 @@ module Cinch
|
|
94
100
|
User(i[:to_user]).send(parse_tells(i))
|
95
101
|
end
|
96
102
|
end
|
97
|
-
@db[:tells].where(to_user: m.user.nick).delete
|
103
|
+
@db[:tells].where(to_user: m.user.nick.downcase).delete
|
98
104
|
end
|
99
105
|
|
100
106
|
match(/tell(?: (.+))?/, method: :irc_tell)
|