aniview 1.3.0 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (38) hide show
  1. checksums.yaml +4 -4
  2. data/bin/aniview +2 -3
  3. data/lib/aniview.rb +50 -243
  4. data/lib/aniview/client/aniclient.rb +111 -53
  5. data/lib/aniview/interface/animeio/animefile.rb +73 -64
  6. data/lib/aniview/interface/animeio/animeio.rb +184 -181
  7. data/lib/aniview/interface/animeio/animeseries.rb +53 -48
  8. data/lib/aniview/interface/deluge/delugec.rb +158 -153
  9. data/lib/aniview/interface/deluge/torrentitem.rb +21 -16
  10. data/lib/aniview/interface/item.rb +21 -17
  11. data/lib/aniview/interface/mpv/mpvbridge.rb +78 -73
  12. data/lib/aniview/interface/pref/pref.rb +135 -132
  13. data/lib/aniview/interface/pref/prefitem.rb +16 -15
  14. data/lib/aniview/interface/schedule/schedule.rb +89 -83
  15. data/lib/aniview/interface/schedule/scheduleitem.rb +54 -51
  16. data/lib/aniview/interface/subscription/subscription.rb +111 -108
  17. data/lib/aniview/util/term.rb +39 -36
  18. data/lib/aniview/util/util.rb +149 -0
  19. data/lib/aniview/view/aiomenu.rb +68 -63
  20. data/lib/aniview/view/color.rb +69 -67
  21. data/lib/aniview/view/delugemenu.rb +44 -40
  22. data/lib/aniview/view/menu.rb +281 -286
  23. data/lib/aniview/view/prefmenu.rb +36 -34
  24. data/lib/aniview/view/schedulemenu.rb +32 -29
  25. data/lib/aniview/view/statusline.rb +19 -14
  26. data/lib/aniview/view/subscriptionmenu.rb +35 -32
  27. data/lib/application.rb +260 -0
  28. data/lib/daemon.rb +174 -0
  29. metadata +5 -12
  30. data/bin/aniviewd +0 -20
  31. data/lib/aniview/util/alogger.rb +0 -18
  32. data/lib/aniview/util/command.rb +0 -25
  33. data/lib/aniview/util/format.rb +0 -123
  34. data/lib/aniview/util/online.rb +0 -12
  35. data/lib/aniview/util/serializer.rb +0 -19
  36. data/lib/aniview/util/stringhelp.rb +0 -50
  37. data/lib/aniview/view/emote.rb +0 -345
  38. data/lib/aniviewd.rb +0 -179
@@ -1,50 +0,0 @@
1
- class StringHelp
2
-
3
- #returns the minimum of three numbers
4
- def self.minimum(a, b, c)
5
- if a > b
6
- return c if b > c
7
- return b
8
- else
9
- return c if a > c
10
- return a
11
- end
12
- end
13
-
14
- #returns the levenshitein distance between two strings s and t
15
- def self.levenshteinDistance(s, t)
16
- s = "_" + s
17
- t = "_" + t
18
-
19
- d = []
20
- for i in 0..s.length
21
- r = []
22
- for j in 0..t.length
23
- r << 0
24
- end
25
- d << r
26
- end
27
-
28
- for i in 1..s.length
29
- d[i][0]=i
30
- end
31
-
32
- for j in 1..t.length
33
- d[0][j]=j
34
- end
35
-
36
- for j in 1..t.length
37
- for i in 1..s.length
38
- cost = 1
39
- cost = 0 if s[i] == t[j]
40
- d[i][j] = self.minimum(
41
- d[i-1][ j ] + 1,
42
- d[ i ][j-1] + 1,
43
- d[i-1][j-1] + cost
44
- )
45
- end
46
- end
47
- return d[s.length][t.length]
48
- end
49
-
50
- end
@@ -1,345 +0,0 @@
1
- class Emote
2
-
3
- def self.amazed
4
- '( ゚д゚)'
5
- end
6
-
7
- def self.a
8
- '( ゚д゚)'
9
- end
10
-
11
- def self.angry
12
- '(#゚Д゚)'
13
- end
14
-
15
- def self.b
16
- '(#゚Д゚)'
17
- end
18
-
19
- def self.bad
20
- '(・A・)'
21
- end
22
-
23
- def self.c
24
- '(・A・)'
25
- end
26
-
27
- def self.bowing
28
- 'm(_ _)m'
29
- end
30
-
31
- def self.d
32
- 'm(_ _)m'
33
- end
34
-
35
- def self.bun
36
- '⊂二二二( ^ω^)二⊃'
37
- end
38
-
39
- def self.e
40
- '⊂二二二( ^ω^)二⊃'
41
- end
42
-
43
- def self.carefree
44
- '(´∀`)'
45
- end
46
-
47
- def self.f
48
- '(´∀`)'
49
- end
50
-
51
- def self.chinese
52
- '(`ハ´)'
53
- end
54
-
55
- def self.g
56
- '(`ハ´)'
57
- end
58
-
59
- def self.crying
60
- '( ´Д⊂ヽ'
61
- end
62
-
63
- def self.h
64
- '(´Д⊂ヽ'
65
- end
66
-
67
- def self.deflagged
68
- '[゚д゚]'
69
- end
70
-
71
- def self.i
72
- '[゚д゚]'
73
- end
74
-
75
- def self.deflated
76
- '(´・ω・`)'
77
- end
78
-
79
- def self.j
80
- '(´・ω・`)'
81
- end
82
-
83
- def self.depressed
84
- '( ´
85
- end
86
- _ゝ`)'
87
- end
88
-
89
- def self.k
90
- '( ´
91
- end
92
- _ゝ`)'
93
- end
94
-
95
- def self.dontknow
96
- '┐(`~`;)┌'
97
- end
98
-
99
- def self.l
100
- '┐(`~`;)┌'
101
- end
102
-
103
- def self.evillaugh
104
- '( ゚∀゚)アハハ八八ノヽノヽノヽノ \ / \/ \'
105
- end
106
-
107
- def self.m
108
- '( ゚∀゚)アハハ八八ノヽノヽノヽノ \ / \/ \'
109
- end
110
-
111
- def self.excitement
112
- 'キタ━━━━━━(゚∀゚)━━━━━━!!!!!'
113
- end
114
-
115
- def self.n
116
- 'キタ━━━━━━(゚∀゚)━━━━━━!!!!!'
117
- end
118
-
119
- def self.goofy
120
- '(゚∀゚)'
121
- end
122
-
123
- def self.o
124
- '(゚∀゚)'
125
- end
126
-
127
- def self.happy
128
- '( ゚ ヮ゚)'
129
- end
130
-
131
- def self.p
132
- '( ゚ ヮ゚)'
133
- end
134
-
135
- def self.heh
136
- '(´・∀・`)'
137
- end
138
-
139
- def self.q
140
- '(´•∀•`)'
141
- end
142
-
143
- def self.hooray
144
- '\(^o^)/'
145
- end
146
-
147
- def self.r
148
- '\(^o^)/'
149
- end
150
-
151
- def self.hugesurprise
152
- 'Σ(゚Д゚)'
153
- end
154
-
155
- def self.s
156
- 'Σ(゚Д゚)'
157
- end
158
-
159
- def self.impatience
160
- '(゚Д゚;≡;゚Д゚)'
161
- end
162
-
163
- def self.t
164
- '(゚Д゚;≡;゚Д゚)'
165
- end
166
-
167
- def self.indifferent
168
- '( ´_ゝ`)'
169
- end
170
-
171
- def self.u
172
- '( ´_ゝ`)'
173
- end
174
-
175
- def self.intuition
176
- 'm9(・∀・)'
177
- end
178
-
179
- def self.v
180
- 'm9(・∀・)'
181
- end
182
-
183
- def self.irritable
184
- 'ヽ(`Д´)ノ'
185
- end
186
-
187
- def self.w
188
- 'ヽ(`Д´)ノ'
189
- end
190
-
191
- def self.koi
192
- 'щ(゚Д゚щ)'
193
- end
194
-
195
- def self.x
196
- 'щ(゚Д゚щ)'
197
- end
198
-
199
- def self.korean
200
- '<`∀´>'
201
- end
202
-
203
- def self.y
204
- '<`∀´>'
205
- end
206
-
207
- def self.money
208
- '(・∀・)つ⑩'
209
- end
210
-
211
- def self.z
212
- '(・∀・)つ⑩'
213
- end
214
-
215
- def self.panting
216
- '( ´Д`)'
217
- end
218
-
219
- def self.M
220
- '( ´Д`)'
221
- end
222
-
223
- def self.peace
224
- 'ヽ(´ー`)ノ'
225
- end
226
-
227
- def self.N
228
- 'ヽ(´ー`)ノ'
229
- end
230
-
231
- def self.perky
232
- '(`・ω・´)'
233
- end
234
-
235
- def self.O
236
- '(`・ω・´)'
237
- end
238
-
239
- def self.sad
240
- '(´;ω;`)'
241
- end
242
-
243
- def self.P
244
- '(´;ω;`)'
245
- end
246
-
247
- def self.sarcasm
248
- '(・∀・)'
249
- end
250
-
251
- def self.A
252
- '(・∀・)'
253
- end
254
-
255
- def self.shocked
256
- 'Σ(゜д゜;)'
257
- end
258
-
259
- def self.B
260
- 'Σ(゜д゜;)'
261
- end
262
-
263
- def self.smoking
264
- '(´ー`)y-~~'
265
- end
266
-
267
- def self.C
268
- '(´ー`)y-~~'
269
- end
270
-
271
- def self.snorlax
272
- '( ̄ー ̄)'
273
- end
274
-
275
- def self.D
276
- '( ̄ー ̄)'
277
- end
278
-
279
- def self.spooked
280
- '(((( ;゚Д゚)))'
281
- end
282
-
283
- def self.E
284
- '(((( ;゚Д゚)))'
285
- end
286
-
287
- def self.stirring
288
- '(*´Д`)'
289
- end
290
-
291
- def self.F
292
- '(*´Д`)'
293
- end
294
-
295
- def self.supercilious
296
- 'm9(^Д^)'
297
- end
298
-
299
- def self.G
300
- 'm9(^Д^)'
301
- end
302
-
303
- def self.surprised
304
- '( ゚Д゚)'
305
- end
306
-
307
- def self.H
308
- '( ゚Д゚)'
309
- end
310
-
311
- def self.tfwnogf
312
- '(`A`)'
313
- end
314
-
315
- def self.I
316
- '(`A`)'
317
- end
318
-
319
- def self.thinking
320
- '(´-`).。oO'
321
- end
322
-
323
- def self.J
324
- '(´-`).。oO'
325
- end
326
-
327
- def self.unconvincing
328
- 'エェェ(´д`)ェェエ'
329
- end
330
-
331
- def self.K
332
- 'エェェ(´д`)ェェエ'
333
- end
334
-
335
- def self.unforeseen
336
- '(゚д゚)'
337
- end
338
-
339
- def self.L
340
- '(゚д゚)'
341
- end
342
-
343
- end
344
-
345
-
data/lib/aniviewd.rb DELETED
@@ -1,179 +0,0 @@
1
- require 'thread'
2
- require 'socket'
3
- require 'warning'
4
-
5
- Warning.ignore([:fixnum, :bignum])
6
-
7
- require_relative 'aniview/interface/deluge/delugec'
8
- require_relative 'aniview/interface/pref/pref'
9
- require_relative 'aniview/interface/schedule/schedule'
10
- require_relative 'aniview/interface/subscription/subscription'
11
- require_relative 'aniview/client/aniclient'
12
- require_relative 'aniview/util/format'
13
- require_relative 'aniview/util/serializer'
14
-
15
- require_relative 'aniview/util/alogger'
16
-
17
- class AniViewd
18
-
19
- def initialize(args)
20
-
21
- @pref = Pref.new
22
- @c = AniClient.new @pref
23
-
24
- #@l = ALogger.new(@pref.get("daemon_log_file"), false)
25
-
26
- args << "start" if args.length < 1
27
- parseArgs args
28
-
29
- @schedule = Schedule.new @pref
30
- @delugec = DelugeC.new(@pref)
31
- @subscription = Subscription.new(@pref, @schedule, @delugec, @c)
32
-
33
- begin
34
- @s = TCPServer.new @pref.get("daemon")["port"]
35
- rescue Errno::EADDRINUSE
36
- puts "error, something is already listening on #{@pref.get("daemon")["port"]}, maybe the \nserver is already running?"
37
- quit
38
- end
39
- @looped = 0
40
- @matches = 0
41
- @lastchecked = "never"
42
-
43
- $stdout.reopen(@pref.parseDir(@pref.get("daemon_log_file")), "w")
44
- $stderr.reopen(@pref.parseDir(@pref.get("daemon_log_file")), "w")
45
- $stdout.sync = true
46
- $stderr.sync = true
47
-
48
- end
49
-
50
- def parseArgs args
51
- args.each { |a|
52
- case a
53
- when "help"
54
- help
55
- quit
56
- when "start"
57
- if @c.server?
58
- puts "already running"
59
- quit
60
- end
61
- when "stop"
62
- if @c.server?
63
- puts "quitting"
64
- @c.stopDaemon
65
- quit
66
- else
67
- puts "server isn't running"
68
- quit
69
- end
70
- when "info"
71
- if @c.server?
72
- puts @c.info
73
- quit
74
- else
75
- puts "server isn't running"
76
- quit
77
- end
78
- when "up?"
79
- puts @c.server?
80
- quit
81
- when "nani"
82
- puts @c.sendMsg("what?")
83
- quit
84
- when "items"
85
- p @c.getItems
86
- quit
87
- else
88
- puts "unknown command, dude!"
89
- quit
90
- end
91
- }
92
- end
93
-
94
- def help
95
- cmds = ["help", "start", "stop", "info", "up?", "nani"]
96
- puts "commands:"
97
- puts cmds.sort
98
- end
99
-
100
- def checkFeeds
101
- Thread.abort_on_exception = true
102
- Thread.new do
103
- while true
104
- @subscription.updateFeed
105
-
106
- if @subscription.feed == nil
107
- @lastchecked = "offline"
108
- else
109
- @lastchecked = Time.now.to_s
110
- @schedule.load
111
- @matches += @subscription.matchAll(verbose: true)
112
- end
113
-
114
- #p @schedule.getAll
115
- @looped += 1
116
- sleep Integer(@pref.get("rss_feed")["refresh_interval"])
117
- end
118
- end
119
- end
120
-
121
- def quit
122
- @checkThread.exit unless @checkThread == nil
123
- exit
124
- end
125
-
126
- def uptime
127
- Format.format_duration(Time.now - @started)
128
- end
129
-
130
- def run
131
- puts "--------"
132
- puts "server started"
133
- puts "server listening on port " + @pref.get("daemon")["port"]
134
-
135
- trap(:QUIT) do
136
- quit
137
- end
138
-
139
- @checkThread = checkFeeds
140
- @started = Time.now
141
- loop do
142
- lastloop = false
143
- client = @s.accept
144
-
145
- message = client.gets.chomp.split(" ")
146
- puts "got msg #{message} from client"
147
- response = "okay."
148
-
149
- message.each_with_index { |m, i|
150
- case m
151
- when "up?"
152
- response = "true"
153
- when "quit"
154
- lastloop = true
155
- response = "quitting"
156
- when "info"
157
- response = "uptime: #{uptime}, loops: #{@looped}, matches, #{@matches}"
158
- when "lastchecked"
159
- response = @lastchecked
160
- when "items"
161
- response = Serializer.e(@schedule.getAll)
162
- when "itemshash"
163
- response = @schedule.getAllCereal
164
- else
165
- response = "what?"
166
- end
167
- }
168
-
169
- response += "\n"
170
-
171
- puts "responding with #{response}"
172
- client.puts response
173
- client.close
174
-
175
- quit if lastloop
176
- end
177
- end
178
-
179
- end