lobstersbot 0.4.0 → 0.5.0

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: dd2cace9d8fc598a376e984f393aa52f716598483de4c72d6747b722cd02b116
4
- data.tar.gz: 2db1cf8591e6d906d5b5efba30a3eb2160935abe8a170f4cd077b316b3af5f1c
3
+ metadata.gz: b5332c42a8ece935c6ef6e10c6a0b109b0a48ecdf7fa1ba4d309ea8813313c63
4
+ data.tar.gz: 81332908eb812c6abd959d109d018b38f9465db7f633304c19bcbac852f153b3
5
5
  SHA512:
6
- metadata.gz: '048758e8fc2753059659dde67fb1cf82a21d26da097f7c1b657be9e0a201a5ca15e89d3baa92930f238b8e6cbc1787f17390ccebfbb1aeb3f01f65a8defaef12'
7
- data.tar.gz: 936bec541237ee9cda13fcffb0decaf31620dde5529b82b577ed5a0c626e3066047ebfbdfbfccd65cadd54f2c581db63ca972db43637c97e1e2c5180a2e1802a
6
+ metadata.gz: 03d7256d4b978815d15bdccc18ca462a019c58307d7308eae8d6d7e2326c6169ef71fa2e73421c6488e774c4fe0e05db84ce2a3f8ac8f36330e9b3067ebdd99f
7
+ data.tar.gz: f3f7128600c334eddbaa97764d6ffb02f74b034aa61e043cac2d66fa537ff68d4fbd6a63eb36ed6bfc950470d5bf20b0d2f830edcc86e1a9e202ac8a97ba3967
data/lib/lobstersbot.rb CHANGED
@@ -3,7 +3,7 @@ require 'pstore'
3
3
 
4
4
  require 'rss'
5
5
  require 'summer'
6
- require 'timers'
6
+ require 'concurrent'
7
7
 
8
8
  require 'lobstersbot/version'
9
9
  require 'lobstersbot/rss_reader'
@@ -30,15 +30,13 @@ module Lobstersbot
30
30
  end
31
31
 
32
32
  def did_start_up
33
- pp ARGV
34
- @timers = Timers::Group.new
35
33
  @memory = PStore.new(config_dir('memory.pstore'), true)
36
34
 
37
35
  # Sort the triggers by priority.
38
36
  @@triggers.sort! {|a, b| b[0] <=> a[0] }
39
37
 
40
- @timers.every(60) { evaluate(:frequently) }
41
- Thread.new { loop { @timers.wait } }
38
+ timer = Concurrent::TimerTask.new(execution_interval: 1) { evaluate(:frequently) }
39
+ timer.execute
42
40
  end
43
41
 
44
42
  def channel_message(sender, channel, message)
@@ -65,7 +63,7 @@ module Lobstersbot
65
63
  slice_name = match.to_s.sub("#{group}_", '').to_sym
66
64
  @memory.transaction do
67
65
  slice = @memory[slice_name] ||= {}
68
- method(match).call(slice, *args)
66
+ self.send(match, slice, *args)
69
67
  end
70
68
  end
71
69
  end
@@ -4,12 +4,23 @@ module Lobstersbot
4
4
  memory,
5
5
  reader = RssReader.new('https://lobste.rs/newest.rss')
6
6
  )
7
- reader.call(memory[:last_run]).each do |story|
7
+ last_run = memory[:last_run] || 0
8
+ stories = reader.call(last_run)
9
+
10
+ if stories.length > 5
8
11
  @config[:channels].each do |channel|
9
- privmsg(story, channel)
10
- sleep 10
12
+ privmsg("Skipping #{stories.length} postings for anti-flood (Last Run: #{last_run}).",
13
+ channel)
14
+ end
15
+ else
16
+ stories.each do |story|
17
+ @config[:channels].each do |channel|
18
+ privmsg(story, channel)
19
+ sleep 1
20
+ end
11
21
  end
12
22
  end
23
+
13
24
  memory[:last_run] = Time.now.to_i
14
25
  end
15
26
  end
@@ -4,7 +4,7 @@ require 'rss'
4
4
  module Lobstersbot
5
5
  class RssReader
6
6
  FORMAT = '%s %s (%s) - %s'.freeze
7
- USERNAME_REGXP = /\((?<username>.+)\)/i # rubocop:disable Style/MutableConstant
7
+ USERNAME_REGXP = /\((?<username>.+)\)/i # rubocop:disable Style/MutableConstant, Lint/RedundantCopDisableDirective
8
8
 
9
9
  def initialize(endpoint, open_proc = URI.method(:open))
10
10
  @endpoint = endpoint
@@ -1,3 +1,3 @@
1
1
  module Lobstersbot
2
- VERSION = "0.4.0".freeze
2
+ VERSION = "0.5.0".freeze
3
3
  end
data/lobstersbot.gemspec CHANGED
@@ -31,6 +31,6 @@ Gem::Specification.new do |spec|
31
31
  spec.add_development_dependency "rubocop-rspec", "~> 2.1.0"
32
32
 
33
33
  spec.add_runtime_dependency 'summer', '~> 1.0'
34
- spec.add_runtime_dependency 'timers', '~> 4.1'
34
+ spec.add_runtime_dependency 'concurrent-ruby', '~> 1.1'
35
35
  spec.add_runtime_dependency 'rss', '~> 0.2.9'
36
36
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lobstersbot
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Hunter Madison
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-02-05 00:00:00.000000000 Z
11
+ date: 2021-05-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -95,19 +95,19 @@ dependencies:
95
95
  - !ruby/object:Gem::Version
96
96
  version: '1.0'
97
97
  - !ruby/object:Gem::Dependency
98
- name: timers
98
+ name: concurrent-ruby
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
101
  - - "~>"
102
102
  - !ruby/object:Gem::Version
103
- version: '4.1'
103
+ version: '1.1'
104
104
  type: :runtime
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
108
  - - "~>"
109
109
  - !ruby/object:Gem::Version
110
- version: '4.1'
110
+ version: '1.1'
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: rss
113
113
  requirement: !ruby/object:Gem::Requirement