organo 0.3.5 → 0.4.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (37) hide show
  1. checksums.yaml +4 -4
  2. data/doc/anime.md +30 -8
  3. data/doc/readme.md +2 -2
  4. data/lib/organo/commands/anime/anime_add.rb +27 -24
  5. data/lib/organo/commands/anime/anime_find_broken_links.rb +31 -0
  6. data/lib/organo/commands/anime/anime_remove.rb +10 -14
  7. data/lib/organo/commands/anime/anime_set_sequel.rb +49 -0
  8. data/lib/organo/commands/anime/anime_show.rb +9 -15
  9. data/lib/organo/commands/anime/anime_update_image.rb +16 -35
  10. data/lib/organo/commands/anime/anime_update_query.rb +16 -21
  11. data/lib/organo/commands/api/api_get_anime.rb +3 -6
  12. data/lib/organo/commands/api/api_get_season.rb +3 -4
  13. data/lib/organo/commands/api/api_get_sequels.rb +1 -3
  14. data/lib/organo/commands/init.rb +30 -8
  15. data/lib/organo/commands/remote/remote_add.rb +6 -10
  16. data/lib/organo/commands/remote/remote_download.rb +5 -6
  17. data/lib/organo/commands/remote/remote_remove.rb +0 -2
  18. data/lib/organo/commands/remote/remote_upload.rb +1 -2
  19. data/lib/organo/commands/statistics.rb +6 -21
  20. data/lib/organo/query.rb +0 -1
  21. data/lib/organo/tools/string_utils.rb +28 -0
  22. data/lib/organo/tools/writer.rb +0 -5
  23. data/lib/organo/version.rb +1 -1
  24. data/lib/organo.rb +34 -43
  25. metadata +36 -17
  26. data/lib/organo/commands/anime/anime_add_sequel.rb +0 -52
  27. data/lib/organo/commands/anime/anime_get_broken_links.rb +0 -32
  28. data/lib/organo/commands/anime/anime_search.rb +0 -25
  29. data/lib/organo/commands/api/api_search_anime.rb +0 -29
  30. data/lib/organo/commands/merge.rb +0 -24
  31. data/lib/organo/model/search_show.rb +0 -58
  32. data/lib/organo/model/sequel.rb +0 -39
  33. data/lib/organo/model/show.rb +0 -36
  34. data/lib/organo/show_list.rb +0 -32
  35. data/lib/organo/tools/check.rb +0 -12
  36. data/lib/organo/tools/local_search.rb +0 -49
  37. data/lib/organo/tools/reader.rb +0 -38
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b58779cd5ac92ef4f14f3b3abd75b221393b45d18f8268e3c967fce213d1563c
4
- data.tar.gz: b16f8fe0a6b7a2a6cddfd5b49484710923aca86bd21bd6dc034143d352391652
3
+ metadata.gz: 1babd85ffac4bb77177ade8a0a7f568ef67715df76d4ec2bf224ce016a973ba1
4
+ data.tar.gz: 967d6eafa28f342d82032a70a8452595239f01deb43525c211c56bba6f7ee6d8
5
5
  SHA512:
6
- metadata.gz: ebe9ecb20f6aca8e4248b518a132789296c81b166a263124010d401e6bc9916577c1c9d1224eab9f0610314d634cac78482bd4cc5d474b98de8388e6ce44048e
7
- data.tar.gz: 2bc797f151ee354347375d77e85f1b7ac0429ed7173a7fa1d2bbce12f4dcb01a339513851059895b251d554d5a4405b91b3995e4703e9e2ceebb3353d46702f3
6
+ metadata.gz: 8f7a73df4cdb8163e61a720434693a2411500d087bc4da5fcddd61c4e7272ae0c65aee956b640a79afeba3bc96c3045f97f0a476d037d584e1632036ddc0298b
7
+ data.tar.gz: 7331b6d1abf07bf24d521efd5babcc552f38d9df151108c731f4a0b1c8035c729b7267ecbe43ae4e433b1ccb65d8d90c3424017e7fed4ffedd63dff04cb535ce
data/doc/anime.md CHANGED
@@ -2,27 +2,49 @@
2
2
 
3
3
  ## add
4
4
 
5
- Add anime entry to files.
5
+ Add anime entry to database.
6
6
  ```shell
7
7
  organo anime add MAL_ID
8
8
  ```
9
9
 
10
- ## add sequel
10
+ ## set_sequel
11
11
 
12
- Add anime sequel entry to anime in file.
12
+ Sets anime as sequel and creates a sequel entry to database.
13
13
  ```shell
14
- organo anime add sequel ANIME_MAL_ID SEQUEL_MAL_ID
14
+ organo anime set_sequel PARENT_MAL_ID CHILD_MAL_ID
15
15
  ```
16
16
 
17
- ## get broken_links
17
+ ## find_broken_links
18
18
 
19
19
  Get list of anime IDs that have broken links.
20
20
  ```shell
21
- organo anime get broken_links
21
+ organo anime find_broken_links
22
22
  ```
23
23
 
24
24
  ## remove
25
- ## search
25
+
26
+ Remove anime entry from database.
27
+ ```shell
28
+ organo anime remove MAL_ID
29
+ ```
30
+
26
31
  ## show
32
+
33
+ Shows anime database entry in console.
34
+ ```shell
35
+ organo anime show MAL_ID
36
+ ```
37
+
27
38
  ## update image
28
- ## update query
39
+
40
+ Updates the `img_url` column of one or more anime to URL from the API.
41
+ ```shell
42
+ organo anime update image MAL_ID [...]
43
+ ```
44
+
45
+ ## update query
46
+
47
+ Updates the `search_query` column of anime to specified string.
48
+ ```shell
49
+ organo anime update query MAL_ID SEARCH_QUERY
50
+ ```
data/doc/readme.md CHANGED
@@ -3,9 +3,9 @@
3
3
  The tool is broken into 4 main subcommands.
4
4
 
5
5
  - [Anime](anime.md)
6
- - Manage and browse the local data files.
6
+ - Manage and browse the database.
7
7
  - [API](api.md)
8
- - Get data from Jikan API.
8
+ - Get data from APIs.
9
9
  - [Remote](remote.md)
10
10
  - Add FTP remote information to push the data to the website.
11
11
  - [Schedule](schedule.md)
@@ -1,37 +1,40 @@
1
- require_relative '../../config'
2
- require_relative '../../tools/writer'
3
- require_relative '../../tools/reader'
4
- require_relative '../../tools/local_search'
5
- require_relative '../../tools/check'
1
+ # frozen_string_literal: true
2
+
3
+ require_relative '../../query'
4
+ require_relative '../../tools/string_utils'
5
+ require 'sequel'
6
6
 
7
7
  module Organo
8
8
  module CLI
9
9
  module Commands
10
10
  module Anime
11
- module Add
12
11
 
13
- class AnimeEntry < Dry::CLI::Command
14
- desc 'Add anime entry to files'
15
- argument :mal_id, type: :integer, required: true, desc: 'MyAnimeList ID'
12
+ class AddEntry < Dry::CLI::Command
13
+ desc 'Add anime entry'
14
+ argument :mal_id, type: :integer, required: true, desc: 'MyAnimeList ID'
16
15
 
17
- def call(mal_id:, **)
18
- Check.init?
19
- if LocalSearch.find_anime_by_id(mal_id).nil?
20
- json_obj = Query.get_anime_by_id(mal_id)
21
- show = SearchShow.new(json_obj['mal_id'], json_obj['title'], json_obj['images']['jpg']['image_url'])
22
- show_type = json_obj['type']
23
- file_name = (show_type == 'TV' ? "#{json_obj['year']}_#{json_obj['season']}" : show_type.downcase)
24
- file_path = "#{Config::DEFAULT_DIR}/#{file_name}.json"
25
- show_list = File.exist?(file_path) ? Reader.read_file(file_path) : []
26
- Writer.to_file(show_list.push(show).sort_by(&:title), file_path)
27
- puts "Added anime \"#{show.title}\" (#{mal_id}) in #{file_path}"
28
- else
29
- puts 'Cannot add an already existing anime'
30
- end
16
+ def call(mal_id:, **)
17
+ db = Sequel.sqlite('./dkb_edited.db')
18
+ shows = db.from(:shows).where(mal_id: mal_id)
19
+ if shows.count.zero?
20
+ show_json = Query.get_anime_by_id(mal_id)
21
+ db.from(:shows).insert(
22
+ mal_id: show_json['mal_id'].to_i,
23
+ slug: StringUtils.create_slug(show_json['title']),
24
+ title: show_json['title'],
25
+ img_url: show_json['images']['jpg']['image_url'],
26
+ search_query: show_json['title'].gsub(':', ' -'),
27
+ is_sequel: false
28
+ )
29
+ shows = db.from(:shows).where(mal_id: mal_id)
30
+ puts 'Show has been added to database'
31
+ else
32
+ puts 'This show already exists'
31
33
  end
34
+ puts shows.first
32
35
  end
33
-
34
36
  end
37
+
35
38
  end
36
39
  end
37
40
  end
@@ -0,0 +1,31 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'httparty'
4
+ require 'sequel'
5
+
6
+ module Organo
7
+ module CLI
8
+ module Commands
9
+ module Anime
10
+
11
+ class FindBrokenLinks < Dry::CLI::Command
12
+ desc 'Get list of anime IDs that have broken links'
13
+
14
+ def call(*)
15
+ db = Sequel.sqlite('dkb_edited.db')
16
+ shows = db.from(:shows)
17
+ broken_list = []
18
+ shows.each do |show|
19
+ response = HTTParty.get(show[:img_url])
20
+ next unless response.code == 404
21
+
22
+ broken_list.push(show[:mal_id])
23
+ end
24
+ puts broken_list.join(' ') unless broken_list.empty?
25
+ end
26
+ end
27
+
28
+ end
29
+ end
30
+ end
31
+ end
@@ -1,28 +1,24 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative '../../config'
4
- require_relative '../../tools/check'
3
+ require 'sequel'
5
4
 
6
5
  module Organo
7
6
  module CLI
8
7
  module Commands
9
8
  module Anime
10
-
11
- class Remove < Dry::CLI::Command
9
+ class RemoveEntry < Dry::CLI::Command
12
10
  desc 'Remove anime entry from files'
13
11
  argument :mal_id, type: :integer, required: true, desc: 'MyAnimeList ID'
14
12
 
15
13
  def call(mal_id:, **)
16
- Check.init?
17
- Dir["#{Config::DEFAULT_DIR}/*.json"].each do |file_path|
18
- shows_list = Reader.read_file(file_path)
19
- show_index = shows_list.find_index { |s| s.id.to_s == mal_id.to_s }
20
- next unless show_index >= 0
21
-
22
- show = shows_list.delete_at(show_index)
23
- Writer.to_file(shows_list, file_path)
24
- puts "Removed anime \"#{show.title}\" (#{mal_id})"
25
- break
14
+ db = Sequel.sqlite('./dkb_edited.db')
15
+ shows = db.from(:shows).where(mal_id: mal_id)
16
+ if shows.count.zero?
17
+ puts 'This show doesn\'t exist.'
18
+ else
19
+ puts 'Removed show.'
20
+ puts shows.first
21
+ shows.delete
26
22
  end
27
23
  end
28
24
  end
@@ -0,0 +1,49 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'sequel'
4
+
5
+ module Organo
6
+ module CLI
7
+ module Commands
8
+ module Anime
9
+
10
+ class SequelEntry < Dry::CLI::Command
11
+ desc 'Set show entry as sequel to another show'
12
+ argument :parent_id, type: :integer, required: true, desc: 'Anime MyAnimeList ID'
13
+ argument :child_id, type: :integer, required: true, desc: 'Sequel MyAnimeList ID'
14
+ argument :type, type: :string, required: false, default: 'season', values: %w[season movie ova], desc: 'Type of sequel (season, movie, ova)'
15
+ argument :type_num, type: :integer, required: false, default: 0, desc: 'The sequel type number'
16
+ argument :subtype, type: :string, required: false, default: '', values: %w[part special ova], desc: 'Type of sequel (part, special, ova)'
17
+ argument :subtype_num, type: :integer, required: false, default: 0, desc: 'The sequel subtype number'
18
+ argument :subtype_selector, type: :integer, required: false, default: -1, desc: 'The sequel subtype selector'
19
+
20
+ def call(parent_id:, child_id:, type:, type_num:, subtype:, subtype_num:, subtype_selector:, **)
21
+ db = Sequel.sqlite('dkb_edited.db')
22
+ parent_show = db.from(:shows).where(mal_id: parent_id)
23
+ child_show = db.from(:shows).where(mal_id: child_id)
24
+ if parent_show.count.positive? && child_show.count.positive?
25
+ if db.from(:sequels).where(parent_id: parent_id, child_id: child_id).count.positive?
26
+ puts 'This sequel entry already exist.'
27
+ else
28
+ db.from(:sequels).insert(
29
+ parent_id: parent_id,
30
+ child_id: child_id,
31
+ type: type,
32
+ type_num: type_num,
33
+ subtype: subtype,
34
+ subtype_num: subtype_num,
35
+ subtype_selector: subtype_selector
36
+ )
37
+ child_show.update(is_sequel: true)
38
+ puts "#{child_show.first[:title]}(#{child_show.first[:mal_id]}) is now a sequel to #{parent_show.first[:title]}(#{parent_show.first[:mal_id]})"
39
+ end
40
+ else
41
+ puts "Parent or child show doesn't exist."
42
+ end
43
+ end
44
+
45
+ end
46
+ end
47
+ end
48
+ end
49
+ end
@@ -1,30 +1,24 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative '../../config'
4
- require_relative '../../tools/check'
3
+ require 'sequel'
5
4
 
6
5
  module Organo
7
6
  module CLI
8
7
  module Commands
9
8
  module Anime
10
9
 
11
- class Show < Dry::CLI::Command
12
- desc 'Show anime entry from files'
10
+ class ShowEntry < Dry::CLI::Command
11
+ desc 'Show anime entry'
13
12
  argument :mal_id, type: :integer, required: true, desc: 'MyAnimeList ID'
14
13
 
15
14
  def call(mal_id:, **)
16
- Check.init?
17
- found = false
18
- Dir["#{Config::DEFAULT_DIR}/*.json"].each do |file_path|
19
- shows_list = Reader.read_file(file_path)
20
- show = shows_list.find { |s| s.id.to_s == mal_id.to_s }
21
- next if show.nil?
22
-
23
- found = true
24
- puts show.to_json
25
- break
15
+ db = Sequel.sqlite('dkb_edited.db')
16
+ show = db.from(:shows).where(mal_id: mal_id)
17
+ if show.count.positive?
18
+ puts show.first
19
+ else
20
+ puts "ID #{mal_id} doesn't exist in the database."
26
21
  end
27
- puts 'Entry not found.' unless found
28
22
  end
29
23
  end
30
24
 
@@ -1,52 +1,33 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative '../../config'
3
+ require 'sequel'
4
4
  require_relative '../../query'
5
- require_relative '../../tools/writer'
6
- require_relative '../../tools/reader'
7
- require_relative '../../tools/check'
8
5
 
9
6
  module Organo
10
7
  module CLI
11
8
  module Commands
12
9
  module Anime
13
- module Update
14
10
 
15
- class Image < Dry::CLI::Command
16
- desc 'Update cover image for the specified anime'
17
- argument :mal_id_list, type: :array, required: true, desc: 'MyAnimeList ID list'
11
+ class UpdateImage < Dry::CLI::Command
12
+ desc 'Update cover image for the specified anime'
13
+ argument :mal_id_list, type: :array, required: true, desc: 'MyAnimeList ID list'
18
14
 
19
- def call(mal_id_list:, **)
20
- Check.init?
21
- found = false
22
- Dir["#{Config::DEFAULT_DIR}/*.json"].each do |file_path|
23
- shows_list = Reader.read_file(file_path)
24
- mal_id_list.each_with_index do |mal_id, index|
25
- show = shows_list.find { |s| s.id.to_s == mal_id.to_s }
26
- if show.nil?
27
- shows_list.each do |s|
28
- show = s.sequels.find { |ss| ss['id'].to_s == mal_id.to_s }
29
- end
30
- end
31
- next if show.nil?
32
-
33
- found = true
34
- if show.is_a?(Hash)
35
- show['image_url'] = Query.get_anime_image(show['id'])
36
- # puts show['image_url']
37
- else
38
- show.image_url = Query.get_anime_image(show.id)
39
- # puts show.image_url
40
- end
41
- Writer.to_file(shows_list, file_path)
42
- sleep(1) if mal_id_list.size > 1 && index < (mal_id.size - 1)
43
- end
15
+ def call(mal_id_list:, **)
16
+ db = Sequel.sqlite('dkb_edited.db')
17
+ mal_id_list.each do |mal_id|
18
+ show = db.from(:shows).where(mal_id: mal_id)
19
+ api_image = Query.get_anime_image(mal_id)
20
+ if show.count.positive?
21
+ show.update(img_url: api_image)
22
+ puts "Updated image of #{show.first[:title]} (#{mal_id})"
23
+ puts api_image
24
+ else
25
+ puts "ID #{mal_id} doesn't exist in the database."
44
26
  end
45
- puts found ? 'Cover image(s) has been updated.' : 'Entry not found.'
46
27
  end
47
28
  end
48
-
49
29
  end
30
+
50
31
  end
51
32
  end
52
33
  end
@@ -1,36 +1,31 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative '../../config'
4
- require_relative '../../tools/writer'
5
- require_relative '../../tools/reader'
6
- require_relative '../../tools/check'
3
+ require 'sequel'
7
4
 
8
5
  module Organo
9
6
  module CLI
10
7
  module Commands
11
8
  module Anime
12
- module Update
13
9
 
14
- class SearchQuery < Dry::CLI::Command
15
- desc 'Update search query for the specified anime'
16
- argument :mal_id, type: :integer, required: true, desc: 'MyAnimeList ID'
17
- argument :search_query, type: :string, required: true, desc: 'String query for Nyaa Torrents search'
10
+ class UpdateSearchQuery < Dry::CLI::Command
11
+ desc 'Update search query for the specified anime'
12
+ argument :mal_id, type: :integer, required: true, desc: 'MyAnimeList ID'
13
+ argument :search_query, type: :string, required: true, desc: 'String query for Nyaa Torrents search'
18
14
 
19
- def call(mal_id:, search_query:, **)
20
- Check.init?
21
- Dir["#{Config::DEFAULT_DIR}/*.json"].each do |file_path|
22
- shows_list = Reader.read_file(file_path)
23
- show = shows_list.find { |s| s.id.to_s == mal_id.to_s }
24
- next if show.nil?
25
-
26
- show.search_query = search_query
27
- Writer.to_file(shows_list, file_path)
28
- puts 'Search query has been updated.'
29
- end
15
+ def call(mal_id:, search_query:, **)
16
+ db = Sequel.sqlite('dkb_edited.db')
17
+ show = db.from(:shows).where(mal_id: mal_id)
18
+ if show.count.positive?
19
+ old_query = show.first[:search_query]
20
+ show.update(search_query: search_query)
21
+ puts "Updated search query of #{show.first[:title]} (#{mal_id})"
22
+ puts "#{old_query} --> #{search_query}"
23
+ else
24
+ puts "ID #{mal_id} doesn't exist in the database."
30
25
  end
31
26
  end
32
-
33
27
  end
28
+
34
29
  end
35
30
  end
36
31
  end
@@ -1,7 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require_relative '../../query'
4
- require_relative '../../show_list'
5
4
 
6
5
  module Organo
7
6
  module CLI
@@ -10,13 +9,11 @@ module Organo
10
9
  module Get
11
10
 
12
11
  class Anime < Dry::CLI::Command
13
- desc "Get anime with specific ID from API"
14
- argument :mal_id, type: :integer, required: true, desc: "MyAnimeList ID"
12
+ desc 'Get anime with specific ID from API'
13
+ argument :mal_id, type: :integer, required: true, desc: 'MyAnimeList ID'
15
14
 
16
15
  def call(mal_id:, **)
17
- json_obj = Query.get_anime_by_id(mal_id)
18
- show = SearchShow.new(json_obj['mal_id'], json_obj['title'], json_obj['images']['jpg']['image_url'])
19
- puts show.to_json
16
+ puts Query.get_anime_by_id(mal_id)
20
17
  end
21
18
  end
22
19
 
@@ -1,5 +1,6 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative '../../query'
2
- require_relative '../../show_list'
3
4
 
4
5
  module Organo
5
6
  module CLI
@@ -13,9 +14,7 @@ module Organo
13
14
  argument :year, type: :integer, required: true, desc: 'Year'
14
15
 
15
16
  def call(season:, year:, **)
16
- json_obj = Query.get_anime_season(season, year)
17
- show_list = ShowList.create_search_show_list(json_obj)
18
- puts show_list.to_json
17
+ puts Query.get_anime_season(season, year)
19
18
  end
20
19
  end
21
20
 
@@ -1,7 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require_relative '../../query'
4
- require_relative '../../show_list'
5
4
 
6
5
  module Organo
7
6
  module CLI
@@ -14,8 +13,7 @@ module Organo
14
13
  argument :mal_id, type: :integer, required: true, desc: 'MyAnimeList ID'
15
14
 
16
15
  def call(mal_id:, **)
17
- sequels = ShowList.create_search_sequel_list(Query.get_anime_sequel(mal_id))
18
- puts sequels.to_json
16
+ puts Query.get_anime_sequel(mal_id)
19
17
  end
20
18
  end
21
19
 
@@ -1,21 +1,43 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'sequel'
4
+
3
5
  module Organo
4
6
  module CLI
5
7
  module Commands
6
8
 
7
9
  class Init < Dry::CLI::Command
8
- desc 'Initialize directory with default files and directories'
10
+ desc 'Initialize database'
9
11
 
10
12
  def call(*)
11
13
  Dir.mkdir './.organo' unless File.exist?('./.organo')
12
- Dir.mkdir './.organo/datafiles' unless File.exist?('./.organo/datafiles')
13
- File.write(
14
- './shows.config.json',
15
- '{"last_id":0,"schema":{"id":"integer","slug":"string","title":"string",' \
16
- '"image_url":"string","sequels":"string","search_query":"string"}}'
17
- )
18
- puts 'Initialized organo directory'
14
+
15
+ db = Sequel.sqlite('dkb_edited.db')
16
+ unless db.table_exists?(:shows)
17
+ db.create_table(:shows) do
18
+ Integer :mal_id
19
+ String :slug, unique: true, null: true
20
+ String :title
21
+ String :img_url
22
+ String :search_query, null: true
23
+ Boolean :is_sequel
24
+ primary_key %i[mal_id]
25
+ end
26
+ end
27
+
28
+ unless db.table_exists?(:sequels)
29
+ db.create_table(:sequels) do
30
+ Integer :parent_id
31
+ Integer :child_id
32
+ String :type, default: 'season'
33
+ Integer :type_num, default: 0
34
+ String :subtype, default: ''
35
+ Integer :subtype_num, default: 0
36
+ Integer :subtype_selector, default: -1
37
+ primary_key %i[parent_id child_id]
38
+ end
39
+ end
40
+
19
41
  end
20
42
  end
21
43
 
@@ -1,14 +1,13 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require_relative '../../config'
4
- require_relative '../../tools/check'
5
4
 
6
5
  module Organo
7
6
  module CLI
8
7
  module Commands
9
8
  module Remote
10
9
 
11
- class Add < Dry::CLI::Command
10
+ class AddEntry < Dry::CLI::Command
12
11
  desc 'Add remote FTP server to config file'
13
12
  argument :env, type: :string, required: true, desc: 'Remote environment name'
14
13
  argument :url, type: :string, required: true, desc: 'FTP server url'
@@ -17,20 +16,17 @@ module Organo
17
16
  option :directory, type: :string, default: '', desc: 'FTP directory'
18
17
 
19
18
  def call(env:, url:, username:, password:, directory:, **)
20
- Check.init?
21
- config = File.exist?(Config::DEFAULT_FILE) ? JSON.parse(File.read(Config::DEFAULT_FILE)) : Array.new
19
+ config = File.exist?(Config::DEFAULT_FILE) ? JSON.parse(File.read(Config::DEFAULT_FILE)) : []
22
20
  section = config.find { |option| option['section'] == 'remotes' }
23
21
  remote = { env: env, url: url, username: username, password: password, directory: directory }
24
22
  if section.nil?
25
- section = { section: 'remotes', entries: []}
23
+ section = { section: 'remotes', entries: [] }
26
24
  config.push(section)
27
25
  section[:entries].push(remote)
26
+ elsif section['entries'].find { |entry| entry['env'] == env }.nil?
27
+ section['entries'].push(remote)
28
28
  else
29
- if section['entries'].find { |entry| entry['env'] == env }.nil?
30
- section['entries'].push(remote)
31
- else
32
- puts 'Environment name is already used'
33
- end
29
+ puts 'Environment name is already used'
34
30
  end
35
31
  File.write(Config::DEFAULT_FILE, JSON.pretty_generate(config))
36
32
  end
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'net/ftp'
4
- require_relative '../../tools/check'
4
+ require_relative '../../config'
5
5
 
6
6
  module Organo
7
7
  module CLI
@@ -13,7 +13,6 @@ module Organo
13
13
  argument :env, type: :string, required: true, desc: 'Environment'
14
14
 
15
15
  def call(env:, **)
16
- Check.init?
17
16
  config = File.exist?(Config::DEFAULT_FILE) ? JSON.parse(File.read(Config::DEFAULT_FILE)) : nil
18
17
  section = config.find { |option| option['section'] == 'remotes' }
19
18
  if section.nil?
@@ -26,11 +25,11 @@ module Organo
26
25
  Net::FTP.open(credentials['url']) do |ftp|
27
26
  ftp.login(credentials['username'], credentials['password'])
28
27
  ftp.chdir(credentials['directory'])
29
- if File.exist?('shows.data.json')
30
- File.delete('shows.data.json.old') if File.exist?('shows.data.json.old')
31
- File.rename('shows.data.json', 'shows.data.json.old')
28
+ if File.exist?('dkb_edited.db')
29
+ File.delete('dkb_edited.db.old') if File.exist?('dkb_edited.db.old')
30
+ File.rename('dkb_edited.db', 'dkb_edited.db.old')
32
31
  end
33
- ftp.getbinaryfile('shows.data.json')
32
+ ftp.getbinaryfile('dkb_edited.db')
34
33
  end
35
34
  end
36
35
  end
@@ -1,7 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require_relative '../../config'
4
- require_relative '../../tools/check'
5
4
 
6
5
  module Organo
7
6
  module CLI
@@ -13,7 +12,6 @@ module Organo
13
12
  argument :env, type: :string, required: true, desc: 'Remote environment name'
14
13
 
15
14
  def call(env:, **)
16
- Check.init?
17
15
  config = File.exist?(Config::DEFAULT_FILE) ? JSON.parse(File.read(Config::DEFAULT_FILE)) : nil
18
16
  unless config.nil?
19
17
  section = config.find { |option| option['section'] == 'remotes' }