lobstersbot 0.4.0 → 0.5.0

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
  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