aniview 1.3.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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