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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6443de1c0cb154bfc68bd4b1f5cea81f58946693
4
- data.tar.gz: 8726490e4b2178e714ab66db8ee27afafe4107db
3
+ metadata.gz: 633df46c12b46c060731d829ece8d2e050385435
4
+ data.tar.gz: 16cb0f86943496a2c184f60487b5adf71456dcba
5
5
  SHA512:
6
- metadata.gz: 767c5e5aeb49ff9b2e28d16035ff718d054bded41e78cf690c53659593663469eb98fd22ac03cef0f6b08bbe58c50637450427150f998e319c76c08affc3497a
7
- data.tar.gz: 064ca3d79312925c8b919dc9383aedfc8c8884ec8aa40abb923053b1ba1fa9f076a892f2a817a47c44d1146bee3e5a7a84c7d89ed249c94746857c173614993f
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
+
@@ -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
@@ -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
@@ -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
+
@@ -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
- end
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
- doc = Tools.get_doc(
79
- Mangdown::Uri.new(
80
- @properties.root +
81
- "/#{@manga.gsub(' ', '-')}/#{@chapter}/#{num}"
82
- ).downcase
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
- doc.css('select')[1].children.length - 1
134
+ super - 1
131
135
  end
132
136
  end
133
137
  end
@@ -39,16 +39,13 @@ module M
39
39
  manga[:name].downcase.include?(search.downcase)
40
40
  end
41
41
 
42
- search_result.empty? ? (puts "Could not find manga") : search_result
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
- if manga.class == MDHash
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
 
@@ -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
@@ -39,11 +39,11 @@ module Mangdown
39
39
  end
40
40
 
41
41
  def get_pop_page_manga(time)
42
- root = ::Mangdown::Tools.get_root(@uri)
42
+ root = Tools.get_root(@uri)
43
43
 
44
44
  num = 30 * (time)
45
45
  page = root + '/popular/' + num.to_s
46
- doc = ::Mangdown::Tools.get_doc(page)
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
- h = MDHash.new
57
- h[:uri], h[:name] = (root + a['href']), a.text
58
- h
56
+ MDHash.new({
57
+ uri: (root + a['href']),
58
+ name: a.text
59
+ })
59
60
  end
60
61
  end
61
62
  end
@@ -9,6 +9,8 @@ module Mangdown
9
9
  case site
10
10
  when /mangareader/
11
11
  mangareader
12
+ when /mangapanda/
13
+ mangareader
12
14
  when /mangafox/
13
15
  mangafox
14
16
  else
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
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-06-12 00:00:00.000000000 Z
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