rubyhexagon 0.1.0 → 0.1.1
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.
- data/bin/e621 +3 -1
- data/lib/container.rb +2 -0
- data/lib/examples/add.rb +3 -3
- data/lib/pool.rb +11 -0
- data/lib/post.rb +6 -1
- data/lib/rubyhexagon.rb +1 -1
- data/lib/set.rb +19 -3
- metadata +10 -10
data/bin/e621
CHANGED
data/lib/container.rb
CHANGED
data/lib/examples/add.rb
CHANGED
@@ -28,7 +28,7 @@ $0 = "E621 #{mod}"
|
|
28
28
|
E621::Config.config = File.expand_path("~/.hexagon/conf.json")
|
29
29
|
Dir.chdir(File.expand_path(E621::Config.paths["home"])) do
|
30
30
|
pools, api = Array.new, API.new(mod)
|
31
|
-
File.open(E621::Config.paths["j#{mod}s"]) do |f|
|
31
|
+
File.open(File.expand_path(E621::Config.paths["j#{mod}s"])) do |f|
|
32
32
|
pools = JSON.parser.new(f.read).parse
|
33
33
|
end
|
34
34
|
puts "Old count: #{pools.length}"
|
@@ -40,7 +40,7 @@ Dir.chdir(File.expand_path(E621::Config.paths["home"])) do
|
|
40
40
|
if pool["id"] && mod == "pool" then
|
41
41
|
pools << id
|
42
42
|
elsif pool["id"] && mod == "set" then
|
43
|
-
pools << {"id"=>pool["id"],"owner"=>pool["
|
43
|
+
pools << {"id"=>pool["id"],"owner"=>pool["user_id"]}
|
44
44
|
end
|
45
45
|
end
|
46
46
|
puts "Adding: #{new.length}"
|
@@ -51,7 +51,7 @@ Dir.chdir(File.expand_path(E621::Config.paths["home"])) do
|
|
51
51
|
end
|
52
52
|
puts "New count: #{pools.length}"
|
53
53
|
pools = pools.to_json
|
54
|
-
File.open(E621::Config.paths["j#{mod}s"]) do |f|
|
54
|
+
File.open(File.expand_path(E621::Config.paths["j#{mod}s"]),"w") do |f|
|
55
55
|
f.print pools
|
56
56
|
end
|
57
57
|
end
|
data/lib/pool.rb
CHANGED
@@ -22,6 +22,7 @@ require "digest/md5"
|
|
22
22
|
module E621
|
23
23
|
class Pool < Container
|
24
24
|
def initialize(post)
|
25
|
+
@api = API.new("pool")
|
25
26
|
set_variables(post)
|
26
27
|
end
|
27
28
|
|
@@ -50,5 +51,15 @@ module E621
|
|
50
51
|
end
|
51
52
|
return json_hash.to_json
|
52
53
|
end
|
54
|
+
|
55
|
+
def each_post
|
56
|
+
(@post_count/24.0).ceil.times do |page|
|
57
|
+
@posts.each do |post|
|
58
|
+
yield post
|
59
|
+
end
|
60
|
+
post = api.get("show",{"id"=>@id,"page"=>page+2})
|
61
|
+
set_variables(post)
|
62
|
+
end
|
63
|
+
end
|
53
64
|
end
|
54
65
|
end
|
data/lib/post.rb
CHANGED
@@ -36,7 +36,12 @@ module E621
|
|
36
36
|
end
|
37
37
|
|
38
38
|
def download(where)
|
39
|
-
|
39
|
+
if @file_url then
|
40
|
+
host,port = @file_url.sub(%r{^.+?//},"").sub(%r{/.+$},""),@file_url.match(/^https/) ? 443 : 80
|
41
|
+
else
|
42
|
+
host,port = "static1.e621.net",443
|
43
|
+
@file_url = "/data/#{@md5[0,2]}/#{@md5[2,2]}/#@md5.#@file_ext"
|
44
|
+
end
|
40
45
|
http = HTTP.new(host,port)
|
41
46
|
if !File.exist?(where) then
|
42
47
|
body = ""
|
data/lib/rubyhexagon.rb
CHANGED
data/lib/set.rb
CHANGED
@@ -20,17 +20,27 @@
|
|
20
20
|
module E621
|
21
21
|
class Set < Container
|
22
22
|
def initialize(post)
|
23
|
-
|
23
|
+
@api,@page = API.new("set"),1
|
24
|
+
if post.is_a?(Hash) then
|
25
|
+
set_variables(post)
|
26
|
+
elsif post.is_a?(Fixnum) then
|
27
|
+
set_variables(@api.get("show",{"id"=>post}))
|
28
|
+
else
|
29
|
+
raise ArgumentError, "Parameter must be Hash or Number."
|
30
|
+
end
|
24
31
|
end
|
25
32
|
|
26
33
|
def add_post(id)
|
27
|
-
api
|
28
|
-
api.post("add_post",{"post_id"=>id,"set_id"=>@id})
|
34
|
+
@api.post("add_post",{"post_id"=>id,"set_id"=>@id})
|
29
35
|
end
|
30
36
|
|
31
37
|
def keys
|
32
38
|
return instance_variables.map{|i|i.to_s.sub("@","")}
|
33
39
|
end
|
40
|
+
|
41
|
+
def name=(name)
|
42
|
+
@name = name
|
43
|
+
end
|
34
44
|
|
35
45
|
def to_json
|
36
46
|
json_hash = Hash.new
|
@@ -39,5 +49,11 @@ module E621
|
|
39
49
|
end
|
40
50
|
return json_hash.to_json
|
41
51
|
end
|
52
|
+
|
53
|
+
def each_post
|
54
|
+
@posts.each do |post|
|
55
|
+
yield post
|
56
|
+
end
|
57
|
+
end
|
42
58
|
end
|
43
59
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rubyhexagon
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -18,21 +18,21 @@ executables:
|
|
18
18
|
extensions: []
|
19
19
|
extra_rdoc_files: []
|
20
20
|
files:
|
21
|
-
- lib/
|
22
|
-
- lib/
|
23
|
-
- lib/rubyhexagon.rb
|
24
|
-
- lib/standard/hash.rb
|
25
|
-
- lib/standard/http.rb
|
21
|
+
- lib/config.rb
|
22
|
+
- lib/set.rb
|
26
23
|
- lib/standard/error.rb
|
24
|
+
- lib/standard/http.rb
|
27
25
|
- lib/standard/string.rb
|
28
26
|
- lib/standard/time.rb
|
29
27
|
- lib/standard/int.rb
|
30
|
-
- lib/
|
28
|
+
- lib/standard/hash.rb
|
29
|
+
- lib/api.rb
|
30
|
+
- lib/rubyhexagon.rb
|
31
|
+
- lib/pool.rb
|
31
32
|
- lib/search.rb
|
32
33
|
- lib/container.rb
|
33
|
-
- lib/
|
34
|
-
- lib/
|
35
|
-
- lib/set.rb
|
34
|
+
- lib/post.rb
|
35
|
+
- lib/examples/add.rb
|
36
36
|
- bin/e621
|
37
37
|
homepage: https://github.com/maxine-red/rubyhexagon
|
38
38
|
licenses:
|