ehbrs-tools 0.43.1 → 0.44.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.
Files changed (86) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +170 -151
  3. data/exe/ehbrs +1 -1
  4. data/lib/ehbrs/tools/application.rb +7 -5
  5. data/lib/ehbrs/tools/core_ext.rb +0 -2
  6. data/lib/ehbrs/tools/executables.rb +0 -16
  7. data/lib/ehbrs/tools/google/translate/session.rb +61 -0
  8. data/lib/ehbrs/tools/instance.rb +0 -3
  9. data/lib/ehbrs/tools/observers/base.rb +63 -0
  10. data/lib/ehbrs/tools/observers/with_persistence.rb +33 -0
  11. data/lib/ehbrs/tools/runner/booking/accommodations.rb +0 -3
  12. data/lib/ehbrs/tools/runner/booking.rb +0 -2
  13. data/lib/ehbrs/tools/runner/cooking_book/build.rb +0 -4
  14. data/lib/ehbrs/tools/runner/cooking_book.rb +0 -3
  15. data/lib/ehbrs/tools/runner/finances/bb_browser.rb +0 -3
  16. data/lib/ehbrs/tools/runner/finances.rb +0 -2
  17. data/lib/ehbrs/tools/runner/fs/selected.rb +0 -5
  18. data/lib/ehbrs/tools/runner/fs/used_space.rb +1 -5
  19. data/lib/ehbrs/tools/runner/fs.rb +0 -2
  20. data/lib/ehbrs/tools/runner/google/translate.rb +1 -5
  21. data/lib/ehbrs/tools/runner/google.rb +0 -2
  22. data/lib/ehbrs/tools/runner/music/lyrics.rb +0 -4
  23. data/lib/ehbrs/tools/runner/music/lyrics_book.rb +0 -5
  24. data/lib/ehbrs/tools/runner/music/selected.rb +0 -3
  25. data/lib/ehbrs/tools/runner/music/sort/dump.rb +0 -4
  26. data/lib/ehbrs/tools/runner/music/sort/load.rb +0 -2
  27. data/lib/ehbrs/tools/runner/music/sort/shuffle.rb +0 -3
  28. data/lib/ehbrs/tools/runner/music/sort.rb +0 -3
  29. data/lib/ehbrs/tools/runner/music/spread.rb +0 -4
  30. data/lib/ehbrs/tools/runner/music.rb +0 -2
  31. data/lib/ehbrs/tools/runner/telegram/send_message.rb +1 -4
  32. data/lib/ehbrs/tools/runner/telegram.rb +0 -3
  33. data/lib/ehbrs/tools/runner/vg/patch.rb +2 -7
  34. data/lib/ehbrs/tools/runner/vg/ps2/rename.rb +0 -3
  35. data/lib/ehbrs/tools/runner/vg/ps2.rb +0 -2
  36. data/lib/ehbrs/tools/runner/vg/wii.rb +0 -5
  37. data/lib/ehbrs/tools/runner/vg.rb +0 -2
  38. data/lib/ehbrs/tools/runner/videos/extract.rb +0 -3
  39. data/lib/ehbrs/tools/runner/videos/languages/file_runner.rb +1 -4
  40. data/lib/ehbrs/tools/runner/videos/languages/labelized.rb +0 -2
  41. data/lib/ehbrs/tools/runner/videos/languages/language.rb +0 -3
  42. data/lib/ehbrs/tools/runner/videos/languages/track.rb +0 -3
  43. data/lib/ehbrs/tools/runner/videos/languages.rb +0 -5
  44. data/lib/ehbrs/tools/runner/videos/opensubtitles.rb +0 -3
  45. data/lib/ehbrs/tools/runner/videos/probe.rb +0 -4
  46. data/lib/ehbrs/tools/runner/videos/series/rename.rb +0 -5
  47. data/lib/ehbrs/tools/runner/videos/series.rb +0 -2
  48. data/lib/ehbrs/tools/runner/videos/subtitles/sanitize.rb +0 -3
  49. data/lib/ehbrs/tools/runner/videos/subtitles.rb +0 -2
  50. data/lib/ehbrs/tools/runner/videos/unsupported.rb +0 -5
  51. data/lib/ehbrs/tools/runner/videos.rb +0 -2
  52. data/lib/ehbrs/tools/runner/web_utils/finances/bills/consume.rb +0 -4
  53. data/lib/ehbrs/tools/runner/web_utils/finances/bills.rb +0 -2
  54. data/lib/ehbrs/tools/runner/web_utils/finances.rb +0 -2
  55. data/lib/ehbrs/tools/runner/web_utils/videos/download.rb +0 -3
  56. data/lib/ehbrs/tools/runner/web_utils/videos/upload.rb +0 -5
  57. data/lib/ehbrs/tools/runner/web_utils/videos.rb +0 -2
  58. data/lib/ehbrs/tools/runner/web_utils.rb +0 -3
  59. data/lib/ehbrs/tools/runner.rb +1 -7
  60. data/lib/ehbrs/tools/self/observers/used_space.rb +22 -0
  61. data/lib/ehbrs/tools/self/observers/with_persistence.rb +37 -0
  62. data/lib/ehbrs/tools/telegram/message_sending.rb +30 -0
  63. data/lib/ehbrs/tools/user_dirs.rb +33 -0
  64. data/lib/ehbrs/tools/version.rb +1 -1
  65. data/lib/ehbrs/tools.rb +7 -2
  66. metadata +47 -54
  67. data/lib/ehbrs/google/translate/session.rb +0 -61
  68. data/lib/ehbrs/google/translate.rb +0 -11
  69. data/lib/ehbrs/google.rb +0 -9
  70. data/lib/ehbrs/music.rb +0 -9
  71. data/lib/ehbrs/observers/base.rb +0 -63
  72. data/lib/ehbrs/observers/with_persistence.rb +0 -34
  73. data/lib/ehbrs/observers.rb +0 -11
  74. data/lib/ehbrs/self/observers/used_space.rb +0 -22
  75. data/lib/ehbrs/self/observers/with_persistence.rb +0 -38
  76. data/lib/ehbrs/self.rb +0 -9
  77. data/lib/ehbrs/telegram/message_sending.rb +0 -31
  78. data/lib/ehbrs/telegram.rb +0 -9
  79. data/lib/ehbrs/tools/vg/patches/applier_factory.rb +0 -43
  80. data/lib/ehbrs/tools/vg/patches/base_applier.rb +0 -37
  81. data/lib/ehbrs/tools/vg/patches/ips_applier.rb +0 -23
  82. data/lib/ehbrs/tools/vg/patches/temp_files.rb +0 -40
  83. data/lib/ehbrs/tools/vg/patches/vcdiff_applier.rb +0 -23
  84. data/lib/ehbrs/tools/vg/patches.rb +0 -13
  85. data/lib/ehbrs/tools/vg.rb +0 -11
  86. data/lib/ehbrs/user_dirs.rb +0 -34
@@ -0,0 +1,30 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Ehbrs
4
+ module Tools
5
+ module Telegram
6
+ class MessageSending
7
+ acts_as_immutable
8
+ immutable_accessor :bot_token, :message
9
+ immutable_accessor :recipient_id, type: :array
10
+
11
+ def run
12
+ ::Telegram::Bot::Client.run(prop(:bot_token)) do |bot|
13
+ prop(:recipient_ids).each do |recipient_id|
14
+ bot.api.sendMessage(chat_id: recipient_id, text: prop(:message))
15
+ end
16
+ end
17
+ end
18
+
19
+ private
20
+
21
+ def prop(attribute)
22
+ r = send(attribute)
23
+ return r if r.present?
24
+
25
+ raise "Attribute #{attribute} is blank"
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,33 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Ehbrs
4
+ module Tools
5
+ module UserDirs
6
+ class << self
7
+ include ::EacRubyUtils::SimpleCache
8
+
9
+ def application_id
10
+ 'ehbrs-tools'
11
+ end
12
+
13
+ private
14
+
15
+ def user_home_dir_uncached
16
+ ::EacFs::StorageTree.new(Dir.home)
17
+ end
18
+
19
+ def cache_uncached
20
+ user_home_dir.child('.cache', application_id)
21
+ end
22
+
23
+ def config_uncached
24
+ user_home_dir.child('.config', application_id)
25
+ end
26
+
27
+ def data_uncached
28
+ user_home_dir.child('.local', 'share', application_id)
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Ehbrs
4
4
  module Tools
5
- VERSION = '0.43.1'
5
+ VERSION = '0.44.1'
6
6
  end
7
7
  end
data/lib/ehbrs/tools.rb CHANGED
@@ -1,9 +1,14 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'eac_ruby_utils/core_ext'
3
+ require 'eac_ruby_utils'
4
+ EacRubyUtils::RootModuleSetup.perform __FILE__
4
5
 
5
6
  module Ehbrs
6
7
  module Tools
7
- require_sub __FILE__
8
+ include ::Ehbrs::Tools::Application
8
9
  end
9
10
  end
11
+
12
+ require 'eac_ruby_base0'
13
+ require 'ehbrs_ruby_utils'
14
+ require 'filesize'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ehbrs-tools
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.43.1
4
+ version: 0.44.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Esquilo Azul Company
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-12-12 00:00:00.000000000 Z
11
+ date: 2025-07-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: avm-files
@@ -16,68 +16,68 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0.8'
20
- - - ">="
21
- - !ruby/object:Gem::Version
22
- version: 0.8.1
19
+ version: '0.9'
23
20
  type: :runtime
24
21
  prerelease: false
25
22
  version_requirements: !ruby/object:Gem::Requirement
26
23
  requirements:
27
24
  - - "~>"
28
25
  - !ruby/object:Gem::Version
29
- version: '0.8'
30
- - - ">="
31
- - !ruby/object:Gem::Version
32
- version: 0.8.1
26
+ version: '0.9'
33
27
  - !ruby/object:Gem::Dependency
34
28
  name: avm-tools
35
29
  requirement: !ruby/object:Gem::Requirement
36
30
  requirements:
37
31
  - - "~>"
38
32
  - !ruby/object:Gem::Version
39
- version: '0.162'
33
+ version: '0.163'
34
+ - - ">="
35
+ - !ruby/object:Gem::Version
36
+ version: 0.163.3
40
37
  type: :runtime
41
38
  prerelease: false
42
39
  version_requirements: !ruby/object:Gem::Requirement
43
40
  requirements:
44
41
  - - "~>"
45
42
  - !ruby/object:Gem::Version
46
- version: '0.162'
43
+ version: '0.163'
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ version: 0.163.3
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: eac_cli
49
49
  requirement: !ruby/object:Gem::Requirement
50
50
  requirements:
51
51
  - - "~>"
52
52
  - !ruby/object:Gem::Version
53
- version: '0.42'
53
+ version: '0.43'
54
+ - - ">="
55
+ - !ruby/object:Gem::Version
56
+ version: 0.43.1
54
57
  type: :runtime
55
58
  prerelease: false
56
59
  version_requirements: !ruby/object:Gem::Requirement
57
60
  requirements:
58
61
  - - "~>"
59
62
  - !ruby/object:Gem::Version
60
- version: '0.42'
63
+ version: '0.43'
64
+ - - ">="
65
+ - !ruby/object:Gem::Version
66
+ version: 0.43.1
61
67
  - !ruby/object:Gem::Dependency
62
68
  name: eac_fs
63
69
  requirement: !ruby/object:Gem::Requirement
64
70
  requirements:
65
71
  - - "~>"
66
72
  - !ruby/object:Gem::Version
67
- version: '0.18'
68
- - - ">="
69
- - !ruby/object:Gem::Version
70
- version: 0.18.1
73
+ version: '0.19'
71
74
  type: :runtime
72
75
  prerelease: false
73
76
  version_requirements: !ruby/object:Gem::Requirement
74
77
  requirements:
75
78
  - - "~>"
76
79
  - !ruby/object:Gem::Version
77
- version: '0.18'
78
- - - ">="
79
- - !ruby/object:Gem::Version
80
- version: 0.18.1
80
+ version: '0.19'
81
81
  - !ruby/object:Gem::Dependency
82
82
  name: eac_ruby_base0
83
83
  requirement: !ruby/object:Gem::Requirement
@@ -85,6 +85,9 @@ dependencies:
85
85
  - - "~>"
86
86
  - !ruby/object:Gem::Version
87
87
  version: '0.19'
88
+ - - ">="
89
+ - !ruby/object:Gem::Version
90
+ version: 0.19.2
88
91
  type: :runtime
89
92
  prerelease: false
90
93
  version_requirements: !ruby/object:Gem::Requirement
@@ -92,40 +95,43 @@ dependencies:
92
95
  - - "~>"
93
96
  - !ruby/object:Gem::Version
94
97
  version: '0.19'
98
+ - - ">="
99
+ - !ruby/object:Gem::Version
100
+ version: 0.19.2
95
101
  - !ruby/object:Gem::Dependency
96
102
  name: eac_ruby_utils
97
103
  requirement: !ruby/object:Gem::Requirement
98
104
  requirements:
99
105
  - - "~>"
100
106
  - !ruby/object:Gem::Version
101
- version: '0.124'
107
+ version: '0.128'
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: 0.128.3
102
111
  type: :runtime
103
112
  prerelease: false
104
113
  version_requirements: !ruby/object:Gem::Requirement
105
114
  requirements:
106
115
  - - "~>"
107
116
  - !ruby/object:Gem::Version
108
- version: '0.124'
117
+ version: '0.128'
118
+ - - ">="
119
+ - !ruby/object:Gem::Version
120
+ version: 0.128.3
109
121
  - !ruby/object:Gem::Dependency
110
122
  name: ehbrs_ruby_utils
111
123
  requirement: !ruby/object:Gem::Requirement
112
124
  requirements:
113
125
  - - "~>"
114
126
  - !ruby/object:Gem::Version
115
- version: '0.44'
116
- - - ">="
117
- - !ruby/object:Gem::Version
118
- version: 0.44.3
127
+ version: '0.45'
119
128
  type: :runtime
120
129
  prerelease: false
121
130
  version_requirements: !ruby/object:Gem::Requirement
122
131
  requirements:
123
132
  - - "~>"
124
133
  - !ruby/object:Gem::Version
125
- version: '0.44'
126
- - - ">="
127
- - !ruby/object:Gem::Version
128
- version: 0.44.3
134
+ version: '0.45'
129
135
  - !ruby/object:Gem::Dependency
130
136
  name: filesize
131
137
  requirement: !ruby/object:Gem::Requirement
@@ -180,14 +186,14 @@ dependencies:
180
186
  requirements:
181
187
  - - "~>"
182
188
  - !ruby/object:Gem::Version
183
- version: '0.10'
189
+ version: '0.12'
184
190
  type: :development
185
191
  prerelease: false
186
192
  version_requirements: !ruby/object:Gem::Requirement
187
193
  requirements:
188
194
  - - "~>"
189
195
  - !ruby/object:Gem::Version
190
- version: '0.10'
196
+ version: '0.12'
191
197
  description:
192
198
  email:
193
199
  executables:
@@ -200,23 +206,14 @@ files:
200
206
  - Gemfile.lock
201
207
  - exe/ehbrs
202
208
  - lib/ehbrs.rb
203
- - lib/ehbrs/google.rb
204
- - lib/ehbrs/google/translate.rb
205
- - lib/ehbrs/google/translate/session.rb
206
- - lib/ehbrs/music.rb
207
- - lib/ehbrs/observers.rb
208
- - lib/ehbrs/observers/base.rb
209
- - lib/ehbrs/observers/with_persistence.rb
210
- - lib/ehbrs/self.rb
211
- - lib/ehbrs/self/observers/used_space.rb
212
- - lib/ehbrs/self/observers/with_persistence.rb
213
- - lib/ehbrs/telegram.rb
214
- - lib/ehbrs/telegram/message_sending.rb
215
209
  - lib/ehbrs/tools.rb
216
210
  - lib/ehbrs/tools/application.rb
217
211
  - lib/ehbrs/tools/core_ext.rb
218
212
  - lib/ehbrs/tools/executables.rb
213
+ - lib/ehbrs/tools/google/translate/session.rb
219
214
  - lib/ehbrs/tools/instance.rb
215
+ - lib/ehbrs/tools/observers/base.rb
216
+ - lib/ehbrs/tools/observers/with_persistence.rb
220
217
  - lib/ehbrs/tools/runner.rb
221
218
  - lib/ehbrs/tools/runner/booking.rb
222
219
  - lib/ehbrs/tools/runner/booking/accommodations.rb
@@ -266,15 +263,11 @@ files:
266
263
  - lib/ehbrs/tools/runner/web_utils/videos.rb
267
264
  - lib/ehbrs/tools/runner/web_utils/videos/download.rb
268
265
  - lib/ehbrs/tools/runner/web_utils/videos/upload.rb
266
+ - lib/ehbrs/tools/self/observers/used_space.rb
267
+ - lib/ehbrs/tools/self/observers/with_persistence.rb
268
+ - lib/ehbrs/tools/telegram/message_sending.rb
269
+ - lib/ehbrs/tools/user_dirs.rb
269
270
  - lib/ehbrs/tools/version.rb
270
- - lib/ehbrs/tools/vg.rb
271
- - lib/ehbrs/tools/vg/patches.rb
272
- - lib/ehbrs/tools/vg/patches/applier_factory.rb
273
- - lib/ehbrs/tools/vg/patches/base_applier.rb
274
- - lib/ehbrs/tools/vg/patches/ips_applier.rb
275
- - lib/ehbrs/tools/vg/patches/temp_files.rb
276
- - lib/ehbrs/tools/vg/patches/vcdiff_applier.rb
277
- - lib/ehbrs/user_dirs.rb
278
271
  - template/ehbrs/cooking_book/build/base_page/layout.html.erb
279
272
  - template/ehbrs/cooking_book/build/index_page/inner.html.erb
280
273
  - template/ehbrs/cooking_book/build/recipe_page/inner.html.erb
@@ -1,61 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'aranha/selenium/session'
4
-
5
- module Ehbrs
6
- module Google
7
- module Translate
8
- class Session
9
- START_URL = 'https://translate.google.com.br/#view=home&op=docs&sl=en&tl=pt'
10
- CLOSE_POPUP_CSS = '.dismiss-button'
11
- FILE_INPUT_XPATH = '//*[@id = "tlid-file-input"]'
12
- SUBMIT_XPATH = '//form[@action="//translate.googleusercontent.com/translate_f"]' \
13
- '//input[@type="submit"]'
14
- RESULT_XPATHS = [
15
- '//script[contains(@src, "https://translate.google.com/translate_a")]',
16
- '/html/body/pre'
17
- ].freeze
18
-
19
- attr_reader :sub
20
-
21
- def initialize
22
- @sub = ::Aranha::Selenium::Session.new
23
- end
24
-
25
- def translate(source_document_path)
26
- go_to_upload_form
27
- input_file(source_document_path)
28
- close_changes_alert_popup
29
- click_on_translate_button
30
- wait_for_load_translation
31
- sub.current_source
32
- end
33
-
34
- private
35
-
36
- def go_to_upload_form
37
- sub.navigate.to START_URL
38
- sub.wait_for_element(xpath: FILE_INPUT_XPATH)
39
- end
40
-
41
- def input_file(source_document_path)
42
- sub.find_element(xpath: FILE_INPUT_XPATH).send_keys(source_document_path)
43
- end
44
-
45
- def click_on_translate_button
46
- sub.wait_for_click(xpath: SUBMIT_XPATH)
47
- end
48
-
49
- def close_changes_alert_popup
50
- sub.wait_for_click(css: CLOSE_POPUP_CSS)
51
- end
52
-
53
- def wait_for_load_translation
54
- sub.wait.until do
55
- RESULT_XPATHS.any? { |xpath| sub.find_elements(xpath: xpath).size.positive? }
56
- end
57
- end
58
- end
59
- end
60
- end
61
- end
@@ -1,11 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_ruby_utils/core_ext'
4
-
5
- module Ehbrs
6
- module Google
7
- module Translate
8
- require_sub __FILE__
9
- end
10
- end
11
- end
data/lib/ehbrs/google.rb DELETED
@@ -1,9 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_ruby_utils/core_ext'
4
-
5
- module Ehbrs
6
- module Google
7
- require_sub __FILE__
8
- end
9
- end
data/lib/ehbrs/music.rb DELETED
@@ -1,9 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_ruby_utils/core_ext'
4
-
5
- module Ehbrs
6
- module Music
7
- require_sub __FILE__
8
- end
9
- end
@@ -1,63 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_ruby_utils/core_ext'
4
-
5
- module Ehbrs
6
- module Observers
7
- class Base
8
- include ::EacRubyUtils::Listable
9
-
10
- lists.add_string :blank_value, :add, :ignore, :raise
11
-
12
- attr_reader :records, :blank_value, :last_check_time
13
-
14
- common_constructor :options, default: [{}] do
15
- @records = options[:records] || []
16
- @blank_value = options[:blank_value].if_present(BLANK_VALUE_ADD) do |v|
17
- v = v.to_s
18
- ::Ehbrs::Observers::Base.lists.blank_value.value_validate!(v)
19
- v
20
- end
21
- end
22
-
23
- def check(value, date = ::Time.required_zone.now)
24
- @last_check_time = date
25
- send("check_with_blank_value_#{blank_value}", value, date)
26
- end
27
-
28
- def changing_value?(value)
29
- records.if_present(true) do
30
- last_value.if_present(value.present?) { |v| v != value }
31
- end
32
- end
33
-
34
- def last_change_time
35
- records.last.if_present(&:time)
36
- end
37
-
38
- def last_value
39
- records.last.if_present(&:value)
40
- end
41
-
42
- private
43
-
44
- def check_with_blank_value_add(value, time)
45
- return false unless changing_value?(value)
46
-
47
- records << { value: value, time: time }.to_struct
48
- true
49
- end
50
-
51
- def check_with_blank_value_ignore(value, date)
52
- false if value.blank? ? false : check_with_blank_value_add(value, date)
53
- end
54
-
55
- def check_with_blank_value_raise(value, date)
56
- raise(::ArgumentError, "Blank value checked (Value: #{value}, Class: #{value.class})") if
57
- value.blank?
58
-
59
- check_with_blank_value_add(value, date)
60
- end
61
- end
62
- end
63
- end
@@ -1,34 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_ruby_utils/core_ext'
4
- require 'ehbrs/observers/base'
5
-
6
- module Ehbrs
7
- module Observers
8
- class WithPersistence < ::Ehbrs::Observers::Base
9
- attr_reader :path
10
-
11
- def initialize(path, options = {})
12
- super(options)
13
- @path = path.to_pathname
14
- load
15
- end
16
-
17
- def check(value, date = ::Time.required_zone.now)
18
- save if super
19
- end
20
-
21
- def load
22
- save unless path.exist?
23
- data = ::YAML.load_file(path.to_path)
24
- @records = data.fetch(:records).map(&:to_struct)
25
- @last_check_time = data.fetch(:last_check_time)
26
- end
27
-
28
- def save
29
- path.parent.mkpath
30
- path.write({ records: records.map(&:to_h), last_check_time: last_check_time }.to_yaml)
31
- end
32
- end
33
- end
34
- end
@@ -1,11 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_ruby_utils/core_ext'
4
-
5
- module Ehbrs
6
- module Fs
7
- module Observers
8
- require_sub __FILE__
9
- end
10
- end
11
- end
@@ -1,22 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'ehbrs/self/observers/with_persistence'
4
-
5
- module Ehbrs
6
- module Self
7
- module Observers
8
- class UsedSpace < ::Ehbrs::Self::Observers::WithPersistence
9
- def path
10
- label
11
- end
12
-
13
- def calculate_value
14
- env = ::EacRubyUtils::Envs.local
15
- env.command('du', '-sb', path.to_s).pipe(
16
- env.command('cut', '-f', '-1')
17
- ).execute!.strip.to_i
18
- end
19
- end
20
- end
21
- end
22
- end
@@ -1,38 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'ehbrs/observers/with_persistence'
4
- require 'ehbrs/user_dirs'
5
-
6
- module Ehbrs
7
- module Self
8
- module Observers
9
- class WithPersistence
10
- enable_simple_cache
11
- common_constructor :label
12
-
13
- def check_current_value
14
- observer.check(current_value)
15
- end
16
-
17
- def changing_value?
18
- observer.changing_value?(current_value)
19
- end
20
-
21
- private
22
-
23
- def current_value_uncached
24
- calculate_value
25
- end
26
-
27
- def observer_uncached
28
- ::Ehbrs::Observers::WithPersistence.new(persistence_path, blank_value: :raise)
29
- end
30
-
31
- def persistence_path_uncached
32
- ::Ehbrs::UserDirs.data.child('observers', label.to_s.parameterize)
33
- .content_path.to_pathname
34
- end
35
- end
36
- end
37
- end
38
- end
data/lib/ehbrs/self.rb DELETED
@@ -1,9 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_ruby_utils/core_ext'
4
-
5
- module Ehbrs
6
- module Self
7
- require_sub __FILE__
8
- end
9
- end
@@ -1,31 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_ruby_utils/core_ext'
4
- require 'telegram/bot'
5
-
6
- module Ehbrs
7
- module Telegram
8
- class MessageSending
9
- acts_as_immutable
10
- immutable_accessor :bot_token, :message
11
- immutable_accessor :recipient_id, type: :array
12
-
13
- def run
14
- ::Telegram::Bot::Client.run(prop(:bot_token)) do |bot|
15
- prop(:recipient_ids).each do |recipient_id|
16
- bot.api.sendMessage(chat_id: recipient_id, text: prop(:message))
17
- end
18
- end
19
- end
20
-
21
- private
22
-
23
- def prop(attribute)
24
- r = send(attribute)
25
- return r if r.present?
26
-
27
- raise "Attribute #{attribute} is blank"
28
- end
29
- end
30
- end
31
- end
@@ -1,9 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_ruby_utils/core_ext'
4
-
5
- module Ehbrs
6
- module Telegram
7
- require_sub __FILE__
8
- end
9
- end
@@ -1,43 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_fs/core_ext'
4
- require 'ehbrs/tools/vg/patches/ips_applier'
5
- require 'ehbrs/tools/vg/patches/vcdiff_applier'
6
-
7
- module Ehbrs
8
- module Tools
9
- module Vg
10
- module Patches
11
- class ApplierFactory
12
- APPLIERS_BY_TYPE = {
13
- 'IPS patch file' => ::Ehbrs::Tools::Vg::Patches::IpsApplier,
14
- 'VCDIFF binary diff' => ::Ehbrs::Tools::Vg::Patches::VcdiffApplier
15
- }.freeze
16
-
17
- enable_simple_cache
18
- common_constructor :patch_path do
19
- self.patch_path = patch_path.to_pathname
20
- end
21
- delegate :apply, to: :applier_instance
22
-
23
- # @return [String]
24
- def patch_type
25
- patch_path.info.description
26
- end
27
-
28
- protected
29
-
30
- # @return [Class]
31
- def applier_class_uncached
32
- APPLIERS_BY_TYPE.fetch(patch_type)
33
- end
34
-
35
- # @return [Object]
36
- def applier_instance_uncached
37
- applier_class.new(patch_path)
38
- end
39
- end
40
- end
41
- end
42
- end
43
- end