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.
@@ -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
- @attributes = {
11
- "t" => @attributes["t"],
12
- "l" => @interface.getLastChecked,
13
- "d" => @interface.checkDaemon
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")), "a")
43
- $stderr.reopen(@pref.parseDir(@pref.get("daemon_log_file")), "a")
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
- @matches += @subscription.matchAll
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
- case message
146
- when "up?"
147
- response = "true"
148
- when "quit"
149
- lastloop = true
150
- response = "quitting"
151
- when "info"
152
- response = "uptime: #{uptime}, loops: #{@looped}, matches, #{@matches}"
153
- when "lastchecked"
154
- response = @lastchecked
155
- else
156
- response = "what?"
157
- end
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.1.0
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-05-24 00:00:00.000000000 Z
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: net-ping
114
+ name: mpv
115
115
  requirement: !ruby/object:Gem::Requirement
116
116
  requirements:
117
117
  - - "~>"
118
118
  - !ruby/object:Gem::Version
119
- version: '2.0'
119
+ version: '1.2'
120
120
  - - ">="
121
121
  - !ruby/object:Gem::Version
122
- version: 2.0.1
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.0'
129
+ version: '1.2'
130
130
  - - ">="
131
131
  - !ruby/object:Gem::Version
132
- version: 2.0.1
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