pluto-update 1.2.0 → 1.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +61 -7
- data/lib/pluto/update/refresher.rb +1 -2
- data/lib/pluto/update/subscriber.rb +50 -11
- data/lib/pluto/update/updater.rb +14 -5
- data/lib/pluto/update/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 537a23fa41963fdb77dfea36a67d3971673b0ec4
|
4
|
+
data.tar.gz: ca620b5fb7c8e25e236095576919be7b0d48155a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e6d7563a0cc2e7b6a3e2081ef2b1c1c6e1e30c7ba115220efa4cbd7f7c1356b85ccb0e42e665a78d6663a92dc9d2aacc8237c456eafa449cf77a7bb93e324a26
|
7
|
+
data.tar.gz: b3fba603c49a729c325f0935457739a9d73c04d36d58482921999e63888ba8cf4df4f00e54865314c56909fabedfc19affe767a645e747767c537862bf469124
|
data/README.md
CHANGED
@@ -33,16 +33,70 @@ title = Planet Ruby
|
|
33
33
|
feed = http://vienna-rb.at/atom.xml
|
34
34
|
```
|
35
35
|
|
36
|
-
For more samples, see [`nytimes.ini`](https://github.com/feedreader/
|
37
|
-
[`js.ini`](https://github.com/feedreader/
|
38
|
-
[`dart.ini`](https://github.com/feedreader/
|
39
|
-
[`haskell.ini`](https://github.com/feedreader/
|
40
|
-
[`viennarb.ini`](https://github.com/feedreader/
|
41
|
-
[`beer.ini`](https://github.com/feedreader/
|
42
|
-
[`football.ini`](https://github.com/feedreader/
|
36
|
+
For more samples, see [`nytimes.ini`](https://github.com/feedreader/planets/blob/master/nytimes.ini),
|
37
|
+
[`js.ini`](https://github.com/feedreader/planets/blob/master/js.ini),
|
38
|
+
[`dart.ini`](https://github.com/feedreader/planets/blob/master/dart.ini),
|
39
|
+
[`haskell.ini`](https://github.com/feedreader/planets/blob/master/haskell.ini),
|
40
|
+
[`viennarb.ini`](https://github.com/feedreader/planets/blob/master/viennarb.ini),
|
41
|
+
[`beer.ini`](https://github.com/feedreader/planets/blob/master/beer.ini),
|
42
|
+
[`football.ini`](https://github.com/feedreader/planets/blob/master/football.ini).
|
43
43
|
|
44
44
|
|
45
45
|
|
46
|
+
### Shortcuts / Helpers
|
47
|
+
|
48
|
+
#### Meetup
|
49
|
+
|
50
|
+
```
|
51
|
+
meetup = vienna-rb
|
52
|
+
```
|
53
|
+
|
54
|
+
gets auto-completed to
|
55
|
+
|
56
|
+
```
|
57
|
+
link = http://www.meetup.com/vienna-rb
|
58
|
+
feed = http://www.meetup.com/vienna-rb/events/rss/vienna.rb/
|
59
|
+
```
|
60
|
+
|
61
|
+
#### Google Groups
|
62
|
+
|
63
|
+
```
|
64
|
+
googlegroups = beerdb
|
65
|
+
```
|
66
|
+
|
67
|
+
gets auto-completed to
|
68
|
+
|
69
|
+
```
|
70
|
+
link = https://groups.google.com/group/beerdb
|
71
|
+
feed = https://groups.google.com/forum/feed/beerdb/topics/atom.xml?num=15
|
72
|
+
```
|
73
|
+
|
74
|
+
#### GitHub Project
|
75
|
+
|
76
|
+
```
|
77
|
+
github = jekyll/jekyll
|
78
|
+
```
|
79
|
+
|
80
|
+
gets auto-completed to
|
81
|
+
|
82
|
+
```
|
83
|
+
link = https://github.com/jekyll/jekyll
|
84
|
+
feed = https://github.com/jekyll/jekyll/commits/master.atom
|
85
|
+
```
|
86
|
+
|
87
|
+
#### Rubygems
|
88
|
+
|
89
|
+
```
|
90
|
+
rubygems = jekyll
|
91
|
+
```
|
92
|
+
|
93
|
+
gets auto-completed to
|
94
|
+
|
95
|
+
```
|
96
|
+
link = http://rubygems.org/gems/jekyll
|
97
|
+
feed = http://rubygems.org/gems/jekyll/versions.atom
|
98
|
+
```
|
99
|
+
|
46
100
|
|
47
101
|
## License
|
48
102
|
|
@@ -82,8 +82,7 @@ private
|
|
82
82
|
subscriber = Subscriber.new
|
83
83
|
subscriber.debug = debug? ? true : false # pass along debug flag
|
84
84
|
|
85
|
-
|
86
|
-
subscriber.update_subscriptions_for( site_key, site_config )
|
85
|
+
subscriber.update_subscriptions_for( site_rec.key, site_config )
|
87
86
|
end
|
88
87
|
|
89
88
|
|
@@ -13,15 +13,16 @@ class Subscriber
|
|
13
13
|
def debug?() @debug || false; end
|
14
14
|
|
15
15
|
|
16
|
-
def
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
16
|
+
def update_subscriptions_for( name, config, opts={} )
|
17
|
+
|
18
|
+
## note: allow (optional) config of site key too
|
19
|
+
site_key = config['key'] || config['slug']
|
20
|
+
if site_key.nil?
|
21
|
+
## if no key configured; use (file)name; remove -_ chars
|
22
|
+
## e.g. jekyll-meta becomes jekyllmeta etc.
|
23
|
+
site_key = name.downcase.gsub( /[\-_]/, '' )
|
24
|
+
end
|
23
25
|
|
24
|
-
def update_subscriptions_for( site_key, config, opts={} )
|
25
26
|
site_attribs = {
|
26
27
|
title: config['title'] || config['name'], # support either title or name
|
27
28
|
url: config['source'] || config['url'], # support source or url for source url for auto-update (optional)
|
@@ -44,7 +45,7 @@ class Subscriber
|
|
44
45
|
site_rec.update_attributes!( site_attribs )
|
45
46
|
|
46
47
|
# -- log update activity
|
47
|
-
Activity.create!( text: "update subscriptions >#{site_key}<" )
|
48
|
+
Activity.create!( text: "update subscriptions for site >#{site_key}<" )
|
48
49
|
|
49
50
|
#### todo/fix:
|
50
51
|
## double check - how to handle delete
|
@@ -62,7 +63,8 @@ class Subscriber
|
|
62
63
|
## todo: downcase key - why ??? why not???
|
63
64
|
|
64
65
|
# skip "top-level" feed keys e.g. title, etc. or planet planet sections (e.g. planet,defaults)
|
65
|
-
next if ['
|
66
|
+
next if ['key','slug',
|
67
|
+
'title','name','name2','title2','subtitle',
|
66
68
|
'source', 'url',
|
67
69
|
'include','includes','exclude','excludes',
|
68
70
|
'feeds',
|
@@ -92,10 +94,47 @@ class Subscriber
|
|
92
94
|
avatar: feed_hash[ 'avatar' ] || feed_hash[ 'face'],
|
93
95
|
github: feed_hash[ 'github' ],
|
94
96
|
twitter: feed_hash[ 'twitter' ],
|
95
|
-
meetup: feed_hash[ 'meetup' ],
|
97
|
+
## meetup: feed_hash[ 'meetup' ], -- remove from schema - virtual attrib ?? - why? why not??
|
96
98
|
}
|
97
99
|
feed_attribs[:encoding] = feed_hash['encoding']||feed_hash['charset'] if feed_hash['encoding']||feed_hash['charset']
|
98
100
|
|
101
|
+
#####
|
102
|
+
##
|
103
|
+
# auto-fill; convenience helpers
|
104
|
+
|
105
|
+
if feed_hash['meetup']
|
106
|
+
## link/url = http://www.meetup.com/vienna-rb
|
107
|
+
## feed/feed_url = http://www.meetup.com/vienna-rb/events/rss/vienna.rb/
|
108
|
+
|
109
|
+
feed_attribs[:url] = "http://www.meetup.com/#{feed_hash['meetup']}" if feed_attribs[:url].nil?
|
110
|
+
feed_attribs[:feed_url] = "http://www.meetup.com/#{feed_hash['meetup']}/events/rss/#{feed_hash['meetup']}/" if feed_attribs[:feed_url].nil?
|
111
|
+
end
|
112
|
+
|
113
|
+
if feed_hash['googlegroups']
|
114
|
+
## link/url = https://groups.google.com/group/beerdb or
|
115
|
+
## https://groups.google.com/forum/#!forum/beerdb
|
116
|
+
## feed/feed_url = https://groups.google.com/forum/feed/beerdb/topics/atom.xml?num=15
|
117
|
+
|
118
|
+
feed_attribs[:url] = "https://groups.google.com/group/#{feed_hash['googlegroups']}" if feed_attribs[:url].nil?
|
119
|
+
feed_attribs[:feed_url] = "https://groups.google.com/forum/feed//#{feed_hash['googlegroups']}/topics/atom.xml?num=15" if feed_attribs[:feed_url].nil?
|
120
|
+
end
|
121
|
+
|
122
|
+
if feed_hash['github'] && feed_hash['github'].index('/') ## e.g. jekyll/jekyll
|
123
|
+
## link/url = https://github.com/jekyll/jekyll
|
124
|
+
## feed/feed_url = https://github.com/jekyll/jekyll/commits/master.atom
|
125
|
+
|
126
|
+
feed_attribs[:url] = "https://github.com/#{feed_hash['github']}" if feed_attribs[:url].nil?
|
127
|
+
feed_attribs[:feed_url] = "https://github.com/#{feed_hash['github']}/commits/master.atom" if feed_attribs[:feed_url].nil?
|
128
|
+
end
|
129
|
+
|
130
|
+
if feed_hash['rubygems']
|
131
|
+
## link/url = http://rubygems.org/gems/jekyll
|
132
|
+
## feed/feed_url = http://rubygems.org/gems/jekyll/versions.atom
|
133
|
+
|
134
|
+
feed_attribs[:url] = "http://rubygems.org/gems/#{feed_hash['rubygems']}" if feed_attribs[:url].nil?
|
135
|
+
feed_attribs[:feed_url] = "http://rubygems.org/gems/#{feed_hash['rubygems']}/versions.atom" if feed_attribs[:feed_url].nil?
|
136
|
+
end
|
137
|
+
|
99
138
|
|
100
139
|
puts "Updating feed subscription >#{feed_key}< - >#{feed_attribs[:feed_url]}<..."
|
101
140
|
|
data/lib/pluto/update/updater.rb
CHANGED
@@ -9,13 +9,13 @@ class Updater
|
|
9
9
|
|
10
10
|
### fix!!!!!: change config to text - yes/no - why? why not??
|
11
11
|
# or pass along struct
|
12
|
-
# - with hash and text and format(e.g. ini
|
12
|
+
# - with hash and text and format(e.g. ini) as fields???
|
13
13
|
#
|
14
14
|
# - why? - we need to get handle on md5 digest/hash plus on plain text, ideally to store in db
|
15
15
|
## - pass along unparsed text!! - not hash struct
|
16
16
|
# - will get saved in db plus we need to generate md5 hash
|
17
|
-
# - add filename e.g. ruby.ini|ruby.conf
|
18
|
-
# or add config format as opt e.g. ini
|
17
|
+
# - add filename e.g. ruby.ini|ruby.conf as opt ??
|
18
|
+
# or add config format as opt e.g. ini?
|
19
19
|
|
20
20
|
def initialize( opts, config )
|
21
21
|
@opts = opts
|
@@ -25,12 +25,21 @@ class Updater
|
|
25
25
|
attr_reader :opts, :config
|
26
26
|
|
27
27
|
def run( arg )
|
28
|
-
arg = arg.downcase.gsub('.ini','')
|
28
|
+
arg = arg.downcase.gsub('.ini','') # remove file extension if present
|
29
29
|
|
30
30
|
update_for( arg )
|
31
31
|
end
|
32
32
|
|
33
|
-
def update_for(
|
33
|
+
def update_for( name )
|
34
|
+
|
35
|
+
## note: allow (optional) config of site key too
|
36
|
+
site_key = config['key'] || config['slug']
|
37
|
+
if site_key.nil?
|
38
|
+
## if no key configured; use (file)name; remove -_ chars
|
39
|
+
## e.g. jekyll-meta becomes jekyllmeta etc.
|
40
|
+
site_key = name.downcase.gsub( /[\-_]/, '' )
|
41
|
+
end
|
42
|
+
|
34
43
|
###################
|
35
44
|
# step 1) update subscriptions
|
36
45
|
subscriber = Subscriber.new
|
data/lib/pluto/update/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pluto-update
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Gerald Bauer
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-12-
|
11
|
+
date: 2014-12-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: pluto-models
|