aniview 1.1.0 → 1.3.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.
- checksums.yaml +4 -4
- data/bin/aniviewd +20 -0
- data/lib/aniview.rb +99 -47
- data/lib/aniview/client/aniclient.rb +11 -1
- data/lib/aniview/interface/animeio/animeio.rb +3 -2
- data/lib/aniview/interface/deluge/delugec.rb +13 -7
- data/lib/aniview/interface/mpv/mpvbridge.rb +80 -0
- data/lib/aniview/interface/pref/defaults.json +5 -3
- data/lib/aniview/interface/pref/pref.rb +2 -2
- data/lib/aniview/interface/pref/validate.json +3 -1
- data/lib/aniview/interface/schedule/schedule.rb +23 -3
- data/lib/aniview/interface/schedule/scheduleitem.rb +11 -1
- data/lib/aniview/interface/subscription/subscription.rb +32 -16
- data/lib/aniview/util/alogger.rb +1 -1
- data/lib/aniview/util/command.rb +2 -1
- data/lib/aniview/util/format.rb +7 -5
- data/lib/aniview/util/serializer.rb +19 -0
- data/lib/aniview/view/aiomenu.rb +2 -2
- data/lib/aniview/view/color.rb +67 -0
- data/lib/aniview/view/delugemenu.rb +4 -0
- data/lib/aniview/view/emote.rb +343 -95
- data/lib/aniview/view/menu.rb +300 -281
- data/lib/aniview/view/statusline.rb +18 -0
- data/lib/aniview/view/subscriptionmenu.rb +8 -5
- data/lib/aniviewd.rb +31 -19
- metadata +13 -8
- data/lib/aniview/interface/subscription/subscriptiondaemon.rb +0 -42
@@ -0,0 +1,18 @@
|
|
1
|
+
require_relative '../util/format'
|
2
|
+
require_relative 'color'
|
3
|
+
|
4
|
+
class StatusLine
|
5
|
+
def initialize pref, term, mpvbridge
|
6
|
+
@term = term
|
7
|
+
@pref = pref
|
8
|
+
@mpvbridge = mpvbridge
|
9
|
+
@clr = Color.public_send(@pref.get("clr")["main"])
|
10
|
+
end
|
11
|
+
|
12
|
+
def draw
|
13
|
+
status_row = @term.rows - 1
|
14
|
+
line = Format.parse_format @pref.get("format_status"), @mpvbridge.attributes, @term.cols
|
15
|
+
#p @mpvbridge.attributes
|
16
|
+
print "\e[#{status_row};1H" + @clr + line + "\e[K\n\e[2K"
|
17
|
+
end
|
18
|
+
end
|
@@ -5,13 +5,16 @@ require_relative '../util/command'
|
|
5
5
|
class SubscriptionMenu < Menu
|
6
6
|
|
7
7
|
def refresh
|
8
|
+
@last_checked = Time.now.to_i if @last_checked == nil
|
9
|
+
|
8
10
|
@items = @interface.makeHash @interface.send(@refresh_func)
|
9
11
|
|
10
|
-
@
|
11
|
-
|
12
|
-
"
|
13
|
-
|
14
|
-
|
12
|
+
if Time.now.to_i < @last_checked + 10
|
13
|
+
@attributes["l"] = @interface.getLastChecked
|
14
|
+
@attributes["d"] = @interface.checkDaemon
|
15
|
+
@interface.syncMatches
|
16
|
+
@last_checked = Time.now.to_i
|
17
|
+
end
|
15
18
|
|
16
19
|
@expanded = -1 if @items.values[@expanded] == nil
|
17
20
|
fixCursor
|
data/lib/aniviewd.rb
CHANGED
@@ -10,6 +10,7 @@ require_relative 'aniview/interface/schedule/schedule'
|
|
10
10
|
require_relative 'aniview/interface/subscription/subscription'
|
11
11
|
require_relative 'aniview/client/aniclient'
|
12
12
|
require_relative 'aniview/util/format'
|
13
|
+
require_relative 'aniview/util/serializer'
|
13
14
|
|
14
15
|
require_relative 'aniview/util/alogger'
|
15
16
|
|
@@ -39,8 +40,8 @@ class AniViewd
|
|
39
40
|
@matches = 0
|
40
41
|
@lastchecked = "never"
|
41
42
|
|
42
|
-
$stdout.reopen(@pref.parseDir(@pref.get("daemon_log_file")), "
|
43
|
-
$stderr.reopen(@pref.parseDir(@pref.get("daemon_log_file")), "
|
43
|
+
$stdout.reopen(@pref.parseDir(@pref.get("daemon_log_file")), "w")
|
44
|
+
$stderr.reopen(@pref.parseDir(@pref.get("daemon_log_file")), "w")
|
44
45
|
$stdout.sync = true
|
45
46
|
$stderr.sync = true
|
46
47
|
|
@@ -80,6 +81,9 @@ class AniViewd
|
|
80
81
|
when "nani"
|
81
82
|
puts @c.sendMsg("what?")
|
82
83
|
quit
|
84
|
+
when "items"
|
85
|
+
p @c.getItems
|
86
|
+
quit
|
83
87
|
else
|
84
88
|
puts "unknown command, dude!"
|
85
89
|
quit
|
@@ -103,10 +107,10 @@ class AniViewd
|
|
103
107
|
@lastchecked = "offline"
|
104
108
|
else
|
105
109
|
@lastchecked = Time.now.to_s
|
106
|
-
@
|
110
|
+
@schedule.load
|
111
|
+
@matches += @subscription.matchAll(verbose: true)
|
107
112
|
end
|
108
113
|
|
109
|
-
|
110
114
|
#p @schedule.getAll
|
111
115
|
@looped += 1
|
112
116
|
sleep Integer(@pref.get("rss_feed")["refresh_interval"])
|
@@ -138,24 +142,32 @@ class AniViewd
|
|
138
142
|
lastloop = false
|
139
143
|
client = @s.accept
|
140
144
|
|
141
|
-
message = client.gets.chomp
|
145
|
+
message = client.gets.chomp.split(" ")
|
142
146
|
puts "got msg #{message} from client"
|
143
147
|
response = "okay."
|
144
148
|
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
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
|
+
|
159
171
|
puts "responding with #{response}"
|
160
172
|
client.puts response
|
161
173
|
client.close
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: aniview
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- annacrombie
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-06-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: streamio-ffmpeg
|
@@ -111,29 +111,30 @@ dependencies:
|
|
111
111
|
- !ruby/object:Gem::Version
|
112
112
|
version: 1.3.1
|
113
113
|
- !ruby/object:Gem::Dependency
|
114
|
-
name:
|
114
|
+
name: mpv
|
115
115
|
requirement: !ruby/object:Gem::Requirement
|
116
116
|
requirements:
|
117
117
|
- - "~>"
|
118
118
|
- !ruby/object:Gem::Version
|
119
|
-
version: '2
|
119
|
+
version: '1.2'
|
120
120
|
- - ">="
|
121
121
|
- !ruby/object:Gem::Version
|
122
|
-
version: 2.
|
122
|
+
version: 1.2.1
|
123
123
|
type: :runtime
|
124
124
|
prerelease: false
|
125
125
|
version_requirements: !ruby/object:Gem::Requirement
|
126
126
|
requirements:
|
127
127
|
- - "~>"
|
128
128
|
- !ruby/object:Gem::Version
|
129
|
-
version: '2
|
129
|
+
version: '1.2'
|
130
130
|
- - ">="
|
131
131
|
- !ruby/object:Gem::Version
|
132
|
-
version: 2.
|
132
|
+
version: 1.2.1
|
133
133
|
description: Browse local anime, based on cmus
|
134
134
|
email: meotleft@gmail.com
|
135
135
|
executables:
|
136
136
|
- aniview
|
137
|
+
- aniviewd
|
137
138
|
extensions: []
|
138
139
|
extra_rdoc_files: []
|
139
140
|
files:
|
@@ -145,6 +146,7 @@ files:
|
|
145
146
|
- "./lib/aniview/interface/deluge/delugec.rb"
|
146
147
|
- "./lib/aniview/interface/deluge/torrentitem.rb"
|
147
148
|
- "./lib/aniview/interface/item.rb"
|
149
|
+
- "./lib/aniview/interface/mpv/mpvbridge.rb"
|
148
150
|
- "./lib/aniview/interface/pref/defaults.json"
|
149
151
|
- "./lib/aniview/interface/pref/pref.rb"
|
150
152
|
- "./lib/aniview/interface/pref/prefitem.rb"
|
@@ -152,22 +154,25 @@ files:
|
|
152
154
|
- "./lib/aniview/interface/schedule/schedule.rb"
|
153
155
|
- "./lib/aniview/interface/schedule/scheduleitem.rb"
|
154
156
|
- "./lib/aniview/interface/subscription/subscription.rb"
|
155
|
-
- "./lib/aniview/interface/subscription/subscriptiondaemon.rb"
|
156
157
|
- "./lib/aniview/util/alogger.rb"
|
157
158
|
- "./lib/aniview/util/command.rb"
|
158
159
|
- "./lib/aniview/util/format.rb"
|
159
160
|
- "./lib/aniview/util/online.rb"
|
161
|
+
- "./lib/aniview/util/serializer.rb"
|
160
162
|
- "./lib/aniview/util/stringhelp.rb"
|
161
163
|
- "./lib/aniview/util/term.rb"
|
162
164
|
- "./lib/aniview/view/aiomenu.rb"
|
165
|
+
- "./lib/aniview/view/color.rb"
|
163
166
|
- "./lib/aniview/view/delugemenu.rb"
|
164
167
|
- "./lib/aniview/view/emote.rb"
|
165
168
|
- "./lib/aniview/view/menu.rb"
|
166
169
|
- "./lib/aniview/view/prefmenu.rb"
|
167
170
|
- "./lib/aniview/view/schedulemenu.rb"
|
171
|
+
- "./lib/aniview/view/statusline.rb"
|
168
172
|
- "./lib/aniview/view/subscriptionmenu.rb"
|
169
173
|
- "./lib/aniviewd.rb"
|
170
174
|
- bin/aniview
|
175
|
+
- bin/aniviewd
|
171
176
|
homepage: https://github.com/annacrombie/aniview/
|
172
177
|
licenses:
|
173
178
|
- MIT
|
@@ -1,42 +0,0 @@
|
|
1
|
-
require 'socket'
|
2
|
-
|
3
|
-
class SubscriptionDaemon
|
4
|
-
|
5
|
-
def initialize pref, subscription
|
6
|
-
@subscription = subscription
|
7
|
-
@pref = pref
|
8
|
-
|
9
|
-
end
|
10
|
-
|
11
|
-
def match
|
12
|
-
@subscription.updateFeed
|
13
|
-
@subscription.matchAll
|
14
|
-
end
|
15
|
-
|
16
|
-
def run
|
17
|
-
|
18
|
-
while true
|
19
|
-
|
20
|
-
match
|
21
|
-
|
22
|
-
sleep Integer(@pref.get("rss_feed")["refresh_interval"])
|
23
|
-
|
24
|
-
end
|
25
|
-
|
26
|
-
end
|
27
|
-
|
28
|
-
def start(mode="s")
|
29
|
-
|
30
|
-
puts "started daemon" if mode == "v"
|
31
|
-
|
32
|
-
@thread = Thread.new do
|
33
|
-
run
|
34
|
-
end
|
35
|
-
|
36
|
-
end
|
37
|
-
|
38
|
-
def exit
|
39
|
-
@thread.exit if @thread != nil
|
40
|
-
end
|
41
|
-
|
42
|
-
end
|