mangdown 0.8.4 → 0.8.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/db/chapter_script.rb +30 -0
- data/db/environment.rb +12 -0
- data/db/mangdown_db.rb +46 -0
- data/db/migrate/001_add_tables.rb +55 -0
- data/db/pages_script.rb +24 -0
- data/lib/mangdown/chapter.rb +19 -15
- data/lib/mangdown/commands.rb +2 -5
- data/lib/mangdown/mangdown.rb +0 -9
- data/lib/mangdown/popular.rb +6 -5
- data/lib/mangdown/properties.rb +2 -0
- metadata +7 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 633df46c12b46c060731d829ece8d2e050385435
|
4
|
+
data.tar.gz: 16cb0f86943496a2c184f60487b5adf71456dcba
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 654e248dc8de1af7697ba9adea5caf2492c3be5027d929c8a56964494442204e8bbadf67516e1763a038bd75a5cc607d6910ee4b4d6cb8cb77f7c88ef4da99a4
|
7
|
+
data.tar.gz: a1d030830a97b497060af161140b8c4bba5ca6111e8427fa3c3348cc33914e81a9b5a60c62f7c4d29bea11c749d3ca866f33654fbff7263872f981e14708aa37
|
@@ -0,0 +1,30 @@
|
|
1
|
+
require_relative '../lib/mangdown'
|
2
|
+
require 'logger'
|
3
|
+
|
4
|
+
module DB
|
5
|
+
extend self
|
6
|
+
|
7
|
+
def create_chapters!(start_char, end_char, site_id)
|
8
|
+
logger = Logger.new('migrate_log.log')
|
9
|
+
|
10
|
+
a_mangas = Manga.select do |m|
|
11
|
+
m.name.downcase[0] >= start_char and
|
12
|
+
m.name.downcase[0] <= end_char and
|
13
|
+
m.site_id == site_id
|
14
|
+
end
|
15
|
+
|
16
|
+
a_mangas.each do |manga|
|
17
|
+
begin
|
18
|
+
m = Mangdown::Manga.new(manga.name, manga.uri)
|
19
|
+
m.chapters_list.each do |md_hash|
|
20
|
+
Chapter.create(md_hash.to_h.merge({manga_id: manga.id}))
|
21
|
+
end
|
22
|
+
rescue Exception => error
|
23
|
+
logger.error(Time.now.to_s + ' ' + error.message)
|
24
|
+
next
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
|
data/db/environment.rb
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
require 'active_record'
|
2
|
+
require 'yaml'
|
3
|
+
require 'erb'
|
4
|
+
|
5
|
+
require_relative '../db/mangdown_db.rb'
|
6
|
+
|
7
|
+
require_relative '../models/site.rb'
|
8
|
+
require_relative '../models/manga.rb'
|
9
|
+
require_relative '../models/chapter.rb'
|
10
|
+
require_relative '../models/page.rb'
|
11
|
+
|
12
|
+
Mangdown::DB.establish_connection
|
data/db/mangdown_db.rb
ADDED
@@ -0,0 +1,46 @@
|
|
1
|
+
module Mangdown
|
2
|
+
class DB
|
3
|
+
config_path = File.expand_path(File.dirname(__FILE__) + '/config.yml')
|
4
|
+
@@config = YAML.load(ERB.new(File.read(config_path)).result)
|
5
|
+
|
6
|
+
def self.establish_connection
|
7
|
+
ActiveRecord::Base.establish_connection(@@config)
|
8
|
+
end
|
9
|
+
|
10
|
+
def self.establish_base_connection
|
11
|
+
ActiveRecord::Base.establish_connection(
|
12
|
+
@@config.merge(
|
13
|
+
{
|
14
|
+
"database" => "postgres",
|
15
|
+
"schema_search_path" => "public",
|
16
|
+
}
|
17
|
+
)
|
18
|
+
)
|
19
|
+
end
|
20
|
+
|
21
|
+
def self.connection
|
22
|
+
ActiveRecord::Base.connection
|
23
|
+
end
|
24
|
+
|
25
|
+
def self.create_database
|
26
|
+
connection.create_database(
|
27
|
+
@@config["database"],
|
28
|
+
@@config,
|
29
|
+
)
|
30
|
+
end
|
31
|
+
|
32
|
+
def self.drop_database
|
33
|
+
connection.drop_database(
|
34
|
+
@@config["database"],
|
35
|
+
)
|
36
|
+
end
|
37
|
+
|
38
|
+
def self.migrate
|
39
|
+
ActiveRecord::Migrator.migrate(
|
40
|
+
File.expand_path(File.dirname(__FILE__) + '/migrate'), nil
|
41
|
+
)
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
|
@@ -0,0 +1,55 @@
|
|
1
|
+
require_relative '../../lib/mangdown'
|
2
|
+
|
3
|
+
class AddTables < ActiveRecord::Migration
|
4
|
+
def up
|
5
|
+
create_table :sites do |t|
|
6
|
+
t.string :name
|
7
|
+
t.string :uri
|
8
|
+
end
|
9
|
+
|
10
|
+
Site.create({ #1
|
11
|
+
name: 'mangareader',
|
12
|
+
uri: 'http://www.mangareader.net/alphabetical',
|
13
|
+
})
|
14
|
+
Site.create({ #2
|
15
|
+
name: 'mangafox',
|
16
|
+
uri: 'http://mangafox.me/manga/',
|
17
|
+
})
|
18
|
+
|
19
|
+
create_table :mangas do |t|
|
20
|
+
t.string :name
|
21
|
+
t.string :uri
|
22
|
+
t.integer :site_id
|
23
|
+
end
|
24
|
+
|
25
|
+
mangareader = Mangdown::MangaList.new( Site.find(1).uri )
|
26
|
+
mangafox = Mangdown::MangaList.new( Site.find(2).uri )
|
27
|
+
|
28
|
+
mangareader.mangas.each do |md_hash|
|
29
|
+
Manga.create(md_hash.merge( {site_id: 1}))
|
30
|
+
end
|
31
|
+
|
32
|
+
mangafox.mangas.each do |md_hash|
|
33
|
+
Manga.create(md_hash.merge( {site_id: 2}))
|
34
|
+
end
|
35
|
+
|
36
|
+
create_table :chapters do |t|
|
37
|
+
t.string :name
|
38
|
+
t.string :uri
|
39
|
+
t.integer :manga_id
|
40
|
+
end
|
41
|
+
|
42
|
+
create_table :pages do |t|
|
43
|
+
t.string :name
|
44
|
+
t.string :uri
|
45
|
+
t.integer :chapter_id
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
def down
|
50
|
+
drop_table :sites
|
51
|
+
drop_table :mangas
|
52
|
+
drop_table :chapters
|
53
|
+
drop_table :pages
|
54
|
+
end
|
55
|
+
end
|
data/db/pages_script.rb
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
require_relative '../lib/mangdown'
|
2
|
+
require 'logger'
|
3
|
+
|
4
|
+
|
5
|
+
module DB
|
6
|
+
extend self
|
7
|
+
|
8
|
+
|
9
|
+
def create_pages!(chapter_id)
|
10
|
+
logger = Logger.new('migration_log.log')
|
11
|
+
chapter = Chapter.find(chapter_id)
|
12
|
+
m_chapter = Mangdown::MDHash.new({
|
13
|
+
name: chapter.name, uri:chapter.uri
|
14
|
+
}).to_chapter
|
15
|
+
m_chapter.pages.each do |page|
|
16
|
+
Page.create({
|
17
|
+
name: page.name, uri: page.uri, chapter_id: chapter_id
|
18
|
+
})
|
19
|
+
end
|
20
|
+
rescue Exception => error
|
21
|
+
logger.error( error.message )
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
data/lib/mangdown/chapter.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
module Mangdown
|
2
2
|
class Chapter
|
3
3
|
|
4
|
-
attr_reader :name, :uri, :pages
|
4
|
+
attr_reader :name, :uri, :pages, :manga, :chapter
|
5
5
|
|
6
6
|
def initialize(name, uri)
|
7
7
|
@manga = name.slice(/(^.+)\s/, 1)
|
@@ -67,7 +67,13 @@ module Mangdown
|
|
67
67
|
threads.each {|thread| thread.join}
|
68
68
|
return @pages.length
|
69
69
|
end
|
70
|
-
|
70
|
+
|
71
|
+
# get the number of pages
|
72
|
+
def get_num_pages(doc)
|
73
|
+
# the select is a dropdown menu of chapter pages
|
74
|
+
doc.css('select')[1].css('option').length
|
75
|
+
end
|
76
|
+
end
|
71
77
|
|
72
78
|
# mangareader chapter object
|
73
79
|
class MRChapter < Chapter
|
@@ -75,12 +81,16 @@ module Mangdown
|
|
75
81
|
|
76
82
|
# get the doc for a given page number
|
77
83
|
def get_page_doc(num)
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
)
|
84
|
+
root = @properties.root
|
85
|
+
manga = @manga.gsub(' ', '-')
|
86
|
+
uri_str = "#{root}/#{manga}/#{@chapter}/#{num}"
|
87
|
+
page_uri = Mangdown::Uri.new(uri_str).downcase
|
88
|
+
|
89
|
+
Tools.get_doc(page_uri)
|
90
|
+
#rescue OpenURI::HTTPError => error
|
91
|
+
# print "Chapter: #{@chapter}, page: #{num}, "
|
92
|
+
# print " uri: #{page_uri} >> "
|
93
|
+
# puts error.message
|
84
94
|
end
|
85
95
|
|
86
96
|
# get the page uri and name
|
@@ -92,12 +102,6 @@ module Mangdown
|
|
92
102
|
name: (image['alt'] + ".jpg")
|
93
103
|
)
|
94
104
|
end
|
95
|
-
|
96
|
-
# get the number of pages
|
97
|
-
def get_num_pages(doc)
|
98
|
-
# the select is a dropdown menu of chapter pages
|
99
|
-
doc.css('select')[1].children.length
|
100
|
-
end
|
101
105
|
end
|
102
106
|
|
103
107
|
# mangafox chapter object
|
@@ -127,7 +131,7 @@ module Mangdown
|
|
127
131
|
|
128
132
|
# get the number of pages
|
129
133
|
def get_num_pages(doc)
|
130
|
-
|
134
|
+
super - 1
|
131
135
|
end
|
132
136
|
end
|
133
137
|
end
|
data/lib/mangdown/commands.rb
CHANGED
@@ -39,16 +39,13 @@ module M
|
|
39
39
|
manga[:name].downcase.include?(search.downcase)
|
40
40
|
end
|
41
41
|
|
42
|
-
|
42
|
+
search_result
|
43
43
|
end
|
44
44
|
|
45
45
|
# download a manga (accepts MDHash) between the chapters given
|
46
46
|
# by default the entire manga will be downloaded
|
47
47
|
def download(manga, first = 0, last = -1)
|
48
|
-
|
49
|
-
manga = manga.to_manga
|
50
|
-
end
|
51
|
-
|
48
|
+
manga = manga.to_manga
|
52
49
|
Tools::Downloader.new(manga, first, last)
|
53
50
|
end
|
54
51
|
|
data/lib/mangdown/mangdown.rb
CHANGED
@@ -2,15 +2,6 @@ module Mangdown
|
|
2
2
|
|
3
3
|
extend self
|
4
4
|
|
5
|
-
def to_s
|
6
|
-
"<#{self.class}::#{self.object_id}" <<
|
7
|
-
@name ? " : #{@name}" : '' <<
|
8
|
-
name ? " : #{name}" : '' <<
|
9
|
-
@uri ? " : #{@uri}" : '' <<
|
10
|
-
uri ? " : #{uri}" : '' <<
|
11
|
-
">"
|
12
|
-
end
|
13
|
-
|
14
5
|
def eql?(other)
|
15
6
|
(self.name == other.name) and (self.uri == other.uri)
|
16
7
|
end
|
data/lib/mangdown/popular.rb
CHANGED
@@ -39,11 +39,11 @@ module Mangdown
|
|
39
39
|
end
|
40
40
|
|
41
41
|
def get_pop_page_manga(time)
|
42
|
-
root =
|
42
|
+
root = Tools.get_root(@uri)
|
43
43
|
|
44
44
|
num = 30 * (time)
|
45
45
|
page = root + '/popular/' + num.to_s
|
46
|
-
doc =
|
46
|
+
doc = Tools.get_doc(page)
|
47
47
|
|
48
48
|
last = (@num_mangas > 30) ? 30 : @num_mangas
|
49
49
|
@num_mangas -= 30
|
@@ -53,9 +53,10 @@ module Mangdown
|
|
53
53
|
|
54
54
|
def get_manga_on_page(doc, root)
|
55
55
|
doc.css('h3 a').map do |a|
|
56
|
-
|
57
|
-
|
58
|
-
|
56
|
+
MDHash.new({
|
57
|
+
uri: (root + a['href']),
|
58
|
+
name: a.text
|
59
|
+
})
|
59
60
|
end
|
60
61
|
end
|
61
62
|
end
|
data/lib/mangdown/properties.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mangdown
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.8.
|
4
|
+
version: 0.8.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- jphager2
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-07-09 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: A gem to download Manga, (pg integration in dev)
|
14
14
|
email: jphager2@gmail.com
|
@@ -17,6 +17,11 @@ extensions: []
|
|
17
17
|
extra_rdoc_files: []
|
18
18
|
files:
|
19
19
|
- LICENSE
|
20
|
+
- db/chapter_script.rb
|
21
|
+
- db/environment.rb
|
22
|
+
- db/mangdown_db.rb
|
23
|
+
- db/migrate/001_add_tables.rb
|
24
|
+
- db/pages_script.rb
|
20
25
|
- doc/help.txt
|
21
26
|
- lib/mangdown.rb
|
22
27
|
- lib/mangdown/cbz.rb
|