lgtm 0.3.0 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +3 -1
- data/exe/lgtm +2 -64
- data/lgtm.gemspec +2 -0
- data/lib/lgtm.rb +85 -1
- data/lib/lgtm/version.rb +1 -1
- metadata +30 -3
- data/lgtm.rb +0 -40
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 58d58c1e75a0bf166829f769000c82541830873d
|
4
|
+
data.tar.gz: 09623157b73c40cdbdf24485cdceeba115cd9470
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 613967c95a80b9b1a1c6b31291d93fe6081d07a06b764258dc7aa2e35b92db25088dcec6ccb10793e9eb633aa23836c82410d0f332e557de647951c3c46ce3ea
|
7
|
+
data.tar.gz: 0797524047fae01500c43a21de80ab484ef2fb2343851bbce7304221b3d1c8cad017e755845cb4cfabcede599c242aede7b0df9fa8491db09ac823d4d360460f
|
data/.gitignore
CHANGED
data/exe/lgtm
CHANGED
@@ -1,68 +1,6 @@
|
|
1
1
|
#! /usr/bin/env ruby
|
2
2
|
|
3
|
-
require '
|
3
|
+
require 'lgtm'
|
4
4
|
|
5
|
-
|
6
|
-
NOT_SET_VALIAVLE_ALERT_1 = "please set enviromant variable LGTM_IN_USER_PATH \n"
|
7
|
-
NOT_SET_VALIAVLE_ALERT_2 = "lgtm.in mypage example -> http://lgtm.in/l/HaiTo \n"
|
8
|
-
NOT_SET_VALIAVLE_ALERT_3 = "in .bashrc, .zshrc -> export LGTM_IN_USER_PATH='http://lgtm.in/l/HaiTo' \n"
|
9
|
-
|
10
|
-
def not_set_valiavle_alert
|
11
|
-
print NOT_SET_VALIAVLE_ALERT_1
|
12
|
-
print NOT_SET_VALIAVLE_ALERT_2
|
13
|
-
print NOT_SET_VALIAVLE_ALERT_3
|
14
|
-
exit(1)
|
15
|
-
end
|
16
|
-
|
17
|
-
LGTM_HAITO_PAGE = ENV['LGTM_IN_USER_PATH'].nil? ? not_set_valiavle_alert : ENV['LGTM_IN_USER_PATH']
|
18
|
-
|
19
|
-
REFLASH_TIME = 604_800.freeze
|
20
|
-
|
21
|
-
LAST_EXECUTED_AT_TIME_PATH = 'last_executed_at.time'.freeze
|
22
|
-
CACHED_LINKS_PATH = 'cached_links.links'.freeze
|
23
|
-
BASE_PATH = File.expand_path('..', __FILE__)
|
24
|
-
|
25
|
-
LGTM_MARKDOWN = '[![LGTM](__LGTM_IMAGE_DETAILS_PATH__)](__LGTM_IMAGE_PATH__)'
|
26
|
-
LGTM_MARKDOWN_DETAIL_PATH_BASE = 'http://lgtm.in/p/'.freeze
|
27
|
-
LGTM_MARKDOWN_IMAGE_PATH_BASE = 'http://lgtm.in/i/'.freeze
|
28
|
-
|
29
|
-
last_executed_at = begin File.read(BASE_PATH + '/' + LAST_EXECUTED_AT_TIME_PATH); rescue; nil;
|
30
|
-
end
|
31
|
-
|
32
|
-
cached_links = begin File.read(BASE_PATH + '/' + CACHED_LINKS_PATH); rescue; nil
|
33
|
-
end
|
34
|
-
|
35
|
-
def fetch_links
|
36
|
-
agent = Mechanize.new
|
37
|
-
page = agent.get(LGTM_HAITO_PAGE)
|
38
|
-
page.links.map(&:href).select {|link| link.match(LGTM_LINK_BASE) }
|
39
|
-
end
|
40
|
-
|
41
|
-
def update_executed_at!
|
42
|
-
File.open(BASE_PATH + '/' + LAST_EXECUTED_AT_TIME_PATH, 'w') {|f| f.write(Time.now.to_i) }
|
43
|
-
end
|
44
|
-
|
45
|
-
def cache_links!(links)
|
46
|
-
File.open(BASE_PATH + '/' + CACHED_LINKS_PATH, 'w') {|f| f.write(Marshal.dump(links)) }
|
47
|
-
end
|
48
|
-
|
49
|
-
links =
|
50
|
-
if Time.now.to_i - last_executed_at.to_i > REFLASH_TIME
|
51
|
-
update_executed_at!
|
52
|
-
|
53
|
-
links = fetch_links
|
54
|
-
cache_links!(links)
|
55
|
-
|
56
|
-
links
|
57
|
-
else
|
58
|
-
cached_links.nil? ? fetch_links : Marshal.load(cached_links)
|
59
|
-
end
|
60
|
-
|
61
|
-
link = links.sample
|
62
|
-
|
63
|
-
hash = link.split('/').last
|
64
|
-
|
65
|
-
lgtm_markdown = LGTM_MARKDOWN.gsub('__LGTM_IMAGE_DETAILS_PATH__', "#{LGTM_MARKDOWN_DETAIL_PATH_BASE + hash}").gsub('__LGTM_IMAGE_PATH__', "#{LGTM_MARKDOWN_IMAGE_PATH_BASE + hash}")
|
66
|
-
|
67
|
-
print lgtm_markdown
|
5
|
+
print Lgtm::In.new.fetch_lgtm_link_markdown!
|
68
6
|
|
data/lgtm.gemspec
CHANGED
@@ -21,5 +21,7 @@ Gem::Specification.new do |spec|
|
|
21
21
|
spec.add_development_dependency "bundler", "~> 1.12"
|
22
22
|
spec.add_development_dependency "rake", "~> 10.0"
|
23
23
|
spec.add_development_dependency "rspec", "~> 3.0"
|
24
|
+
spec.add_development_dependency 'pry'
|
25
|
+
spec.add_development_dependency 'pry-byebug'
|
24
26
|
spec.add_dependency 'mechanize'
|
25
27
|
end
|
data/lib/lgtm.rb
CHANGED
@@ -1,5 +1,89 @@
|
|
1
1
|
require "lgtm/version"
|
2
|
+
require 'mechanize'
|
2
3
|
|
3
4
|
module Lgtm
|
4
|
-
|
5
|
+
class In
|
6
|
+
LGTM_LINK_BASE = 'http://lgtm.in/i'.freeze
|
7
|
+
NOT_SET_VALIAVLE_ALERT_1 = "please set enviromant variable LGTM_IN_USER_PATH \n"
|
8
|
+
NOT_SET_VALIAVLE_ALERT_2 = "lgtm.in mypage example -> http://lgtm.in/l/HaiTo \n"
|
9
|
+
NOT_SET_VALIAVLE_ALERT_3 = "in .bashrc, .zshrc -> export LGTM_IN_USER_PATH='http://lgtm.in/l/HaiTo' \n"
|
10
|
+
|
11
|
+
REFLASH_TIME = 604_800.freeze
|
12
|
+
|
13
|
+
LAST_EXECUTED_AT_TIME_PATH = 'last_executed_at.time'.freeze
|
14
|
+
CACHED_LINKS_PATH = 'cached_links.links'.freeze
|
15
|
+
BASE_PATH = File.expand_path('..', __FILE__)
|
16
|
+
|
17
|
+
LINK_PAR_PAGE_BASE = 32.freeze
|
18
|
+
|
19
|
+
LGTM_MARKDOWN = '[![LGTM](__LGTM_IMAGE_DETAILS_PATH__)](__LGTM_IMAGE_PATH__)'
|
20
|
+
LGTM_MARKDOWN_DETAIL_PATH_BASE = 'http://lgtm.in/p/'.freeze
|
21
|
+
LGTM_MARKDOWN_IMAGE_PATH_BASE = 'http://lgtm.in/i/'.freeze
|
22
|
+
|
23
|
+
def not_set_valiavle_alert
|
24
|
+
print NOT_SET_VALIAVLE_ALERT_1
|
25
|
+
print NOT_SET_VALIAVLE_ALERT_2
|
26
|
+
print NOT_SET_VALIAVLE_ALERT_3
|
27
|
+
exit(1)
|
28
|
+
end
|
29
|
+
|
30
|
+
def initialize
|
31
|
+
@lgtm_my_page = ENV['LGTM_IN_USER_PATH'].nil? ? not_set_valiavle_alert : ENV['LGTM_IN_USER_PATH']
|
32
|
+
|
33
|
+
@last_executed_at = begin File.read(BASE_PATH + '/' + LAST_EXECUTED_AT_TIME_PATH); rescue; nil;
|
34
|
+
end
|
35
|
+
|
36
|
+
@cached_links = begin File.read(BASE_PATH + '/' + CACHED_LINKS_PATH); rescue; nil
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
def fetch_lgtm_link_markdown!
|
41
|
+
links =
|
42
|
+
if Time.now.to_i - @last_executed_at.to_i > REFLASH_TIME
|
43
|
+
update_executed_at!
|
44
|
+
|
45
|
+
links = fetch_links
|
46
|
+
cache_links!(links)
|
47
|
+
|
48
|
+
links
|
49
|
+
else
|
50
|
+
@cached_links.nil? ? fetch_links : Marshal.load(@cached_links)
|
51
|
+
end
|
52
|
+
|
53
|
+
link = links.sample
|
54
|
+
|
55
|
+
hash = link.split('/').last
|
56
|
+
|
57
|
+
LGTM_MARKDOWN.gsub('__LGTM_IMAGE_DETAILS_PATH__', "#{LGTM_MARKDOWN_DETAIL_PATH_BASE + hash}").gsub('__LGTM_IMAGE_PATH__', "#{LGTM_MARKDOWN_IMAGE_PATH_BASE + hash}")
|
58
|
+
end
|
59
|
+
|
60
|
+
private
|
61
|
+
|
62
|
+
def fetch_links
|
63
|
+
agent = Mechanize.new
|
64
|
+
cursor = 1
|
65
|
+
links = []
|
66
|
+
|
67
|
+
fetch_link_per_page!(cursor, links, agent)
|
68
|
+
end
|
69
|
+
|
70
|
+
def fetch_link_per_page!(cursor, links, agent)
|
71
|
+
page = agent.get(@lgtm_my_page + "?page=#{cursor}")
|
72
|
+
links << page.links.map(&:href).select {|link| link.match(LGTM_LINK_BASE) }
|
73
|
+
|
74
|
+
if links.flatten!.size % LINK_PAR_PAGE_BASE == 0
|
75
|
+
fetch_link_per_page!(cursor + 1, links, agent)
|
76
|
+
end
|
77
|
+
|
78
|
+
links.flatten
|
79
|
+
end
|
80
|
+
|
81
|
+
def update_executed_at!
|
82
|
+
File.open(BASE_PATH + '/' + LAST_EXECUTED_AT_TIME_PATH, 'w') {|f| f.write(Time.now.to_i) }
|
83
|
+
end
|
84
|
+
|
85
|
+
def cache_links!(links)
|
86
|
+
File.open(BASE_PATH + '/' + CACHED_LINKS_PATH, 'w') {|f| f.write(Marshal.dump(links)) }
|
87
|
+
end
|
88
|
+
end
|
5
89
|
end
|
data/lib/lgtm/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: lgtm
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- HaiTo
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-07-
|
11
|
+
date: 2016-07-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -52,6 +52,34 @@ dependencies:
|
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '3.0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: pry
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: pry-byebug
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
55
83
|
- !ruby/object:Gem::Dependency
|
56
84
|
name: mechanize
|
57
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -86,7 +114,6 @@ files:
|
|
86
114
|
- bin/setup
|
87
115
|
- exe/lgtm
|
88
116
|
- lgtm.gemspec
|
89
|
-
- lgtm.rb
|
90
117
|
- lib/lgtm.rb
|
91
118
|
- lib/lgtm/version.rb
|
92
119
|
homepage: https://github.com/haito/lgtm
|
data/lgtm.rb
DELETED
@@ -1,40 +0,0 @@
|
|
1
|
-
require 'mechanize'
|
2
|
-
|
3
|
-
LGTM_LINK_BASE = 'http://lgtm.in/i'.freeze
|
4
|
-
LGTM_HAITO_PAGE = 'http://lgtm.in/l/HaiTo'.freeze
|
5
|
-
|
6
|
-
REFLASH_TIME = 604_800.freeze
|
7
|
-
|
8
|
-
LAST_EXECUTED_AT_TIME_PATH = 'last_executed_at.time'.freeze
|
9
|
-
CACHED_LINKS_PATH = 'cached_links.links'.freeze
|
10
|
-
BASE_PATH = File.expand_path('..', __FILE__)
|
11
|
-
|
12
|
-
last_executed_at = begin File.read(BASE_PATH + '/' + LAST_EXECUTED_AT_TIME_PATH); rescue; nil;
|
13
|
-
end
|
14
|
-
|
15
|
-
cached_links = begin File.read(BASE_PATH + '/' + CACHED_LINKS_PATH); rescue; nil
|
16
|
-
end
|
17
|
-
|
18
|
-
def fetch_links
|
19
|
-
agent = Mechanize.new
|
20
|
-
page = agent.get(LGTM_HAITO_PAGE)
|
21
|
-
page.links.map(&:href).select {|link| link.match(LGTM_LINK_BASE) }
|
22
|
-
end
|
23
|
-
|
24
|
-
def update_executed_at!
|
25
|
-
File.open(BASE_PATH + '/' + LAST_EXECUTED_AT_TIME_PATH, 'w') {|f| f.write(Time.now.to_i) }
|
26
|
-
end
|
27
|
-
|
28
|
-
links =
|
29
|
-
if Time.now.to_i - last_executed_at.to_i > REFLASH_TIME
|
30
|
-
update_executed_at!
|
31
|
-
|
32
|
-
fetch_links
|
33
|
-
else
|
34
|
-
cached_links.nil? ? fetch_links : cached_links
|
35
|
-
end
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
system("echo #{links.sample} | pbcopy")
|
40
|
-
|