murlsh 0.11.0 → 1.0.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.
- data/.htaccess +2 -0
- data/README.textile +3 -33
- data/Rakefile +12 -5
- data/VERSION +1 -1
- data/config.ru +10 -4
- data/config.yaml +6 -12
- data/lib/murlsh/dispatch.rb +0 -6
- data/lib/murlsh/img_store.rb +36 -0
- data/lib/murlsh/markup.rb +0 -1
- data/lib/murlsh/plugin.rb +2 -6
- data/lib/murlsh/uri_ask.rb +66 -22
- data/lib/murlsh/url.rb +0 -18
- data/lib/murlsh/url_body.rb +15 -23
- data/lib/murlsh/url_server.rb +5 -5
- data/murlsh.gemspec +44 -19
- data/plugins/add_post_50_update_feed.rb +17 -3
- data/plugins/add_post_50_update_podcast.rb +46 -0
- data/plugins/add_post_50_update_rss.rb +18 -2
- data/plugins/add_post_60_notify_hubs.rb +3 -1
- data/plugins/add_pre_40_convert_mobile.rb +30 -0
- data/plugins/add_pre_50_lookup_content_type_title.rb +11 -4
- data/plugins/add_pre_60_flickr.rb +38 -0
- data/plugins/add_pre_60_github_title.rb +5 -1
- data/plugins/add_pre_60_google_code_title.rb +5 -2
- data/plugins/add_pre_60_imageshack.rb +31 -0
- data/plugins/add_pre_60_imgur.rb +32 -0
- data/plugins/add_pre_60_s3_image.rb +34 -0
- data/plugins/add_pre_60_twitter.rb +35 -0
- data/plugins/add_pre_60_vimeo.rb +35 -0
- data/plugins/add_pre_60_youtube.rb +31 -0
- data/plugins/html_parse_50_hpricot.rb +2 -0
- data/plugins/url_display_add_45_mp3.rb +30 -0
- data/plugins/url_display_add_50_hostrec.rb +38 -0
- data/plugins/url_display_add_55_content_type.rb +27 -0
- data/plugins/url_display_add_60_via.rb +52 -0
- data/plugins/url_display_add_65_time.rb +22 -0
- data/public/css/jquery.jgrowl.css +0 -3
- data/public/css/screen.css +0 -18
- data/public/img/thumb/README +0 -0
- data/public/js/jquery-1.4.3.min.js +166 -0
- data/public/js/js.js +62 -234
- data/public/js/twitter-text-1.0.3.js +538 -0
- data/spec/img_store_spec.rb +53 -0
- data/spec/uri_ask_spec.rb +14 -4
- metadata +139 -37
- data/lib/murlsh/flickr_server.rb +0 -55
- data/lib/murlsh/twitter_server.rb +0 -45
- data/lib/murlsh/unwrap_jsonp.rb +0 -15
- data/lib/murlsh/xhtml_response.rb +0 -20
- data/plugins/hostrec_50_redundant.rb +0 -14
- data/plugins/hostrec_60_skip.rb +0 -24
- data/plugins/time_50_ago.rb +0 -16
- data/plugins/via_50_domain.rb +0 -36
- data/public/js/jquery-1.4.2.min.js +0 -154
- data/spec/unwrap_json_spec.rb +0 -21
- data/spec/xhtml_response_spec.rb +0 -112
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: murlsh
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 23
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
|
+
- 1
|
7
8
|
- 0
|
8
|
-
- 11
|
9
9
|
- 0
|
10
|
-
version: 0.
|
10
|
+
version: 1.0.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Matthew M. Boedicker
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2010-
|
18
|
+
date: 2010-11-03 00:00:00 -04:00
|
19
19
|
default_executable: murlsh
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
@@ -67,9 +67,41 @@ dependencies:
|
|
67
67
|
type: :runtime
|
68
68
|
version_requirements: *id003
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
|
-
name:
|
70
|
+
name: flickraw
|
71
71
|
prerelease: false
|
72
72
|
requirement: &id004 !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
74
|
+
requirements:
|
75
|
+
- - ">="
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
hash: 57
|
78
|
+
segments:
|
79
|
+
- 0
|
80
|
+
- 8
|
81
|
+
- 3
|
82
|
+
version: 0.8.3
|
83
|
+
type: :runtime
|
84
|
+
version_requirements: *id004
|
85
|
+
- !ruby/object:Gem::Dependency
|
86
|
+
name: flog
|
87
|
+
prerelease: false
|
88
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
89
|
+
none: false
|
90
|
+
requirements:
|
91
|
+
- - ">="
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
hash: 27
|
94
|
+
segments:
|
95
|
+
- 2
|
96
|
+
- 5
|
97
|
+
- 0
|
98
|
+
version: 2.5.0
|
99
|
+
type: :runtime
|
100
|
+
version_requirements: *id005
|
101
|
+
- !ruby/object:Gem::Dependency
|
102
|
+
name: hpricot
|
103
|
+
prerelease: false
|
104
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
73
105
|
none: false
|
74
106
|
requirements:
|
75
107
|
- - ">="
|
@@ -81,11 +113,11 @@ dependencies:
|
|
81
113
|
- 1
|
82
114
|
version: 0.8.1
|
83
115
|
type: :runtime
|
84
|
-
version_requirements: *
|
116
|
+
version_requirements: *id006
|
85
117
|
- !ruby/object:Gem::Dependency
|
86
118
|
name: htmlentities
|
87
119
|
prerelease: false
|
88
|
-
requirement: &
|
120
|
+
requirement: &id007 !ruby/object:Gem::Requirement
|
89
121
|
none: false
|
90
122
|
requirements:
|
91
123
|
- - ">="
|
@@ -97,11 +129,11 @@ dependencies:
|
|
97
129
|
- 0
|
98
130
|
version: 4.2.0
|
99
131
|
type: :runtime
|
100
|
-
version_requirements: *
|
132
|
+
version_requirements: *id007
|
101
133
|
- !ruby/object:Gem::Dependency
|
102
134
|
name: json
|
103
135
|
prerelease: false
|
104
|
-
requirement: &
|
136
|
+
requirement: &id008 !ruby/object:Gem::Requirement
|
105
137
|
none: false
|
106
138
|
requirements:
|
107
139
|
- - ">="
|
@@ -113,11 +145,11 @@ dependencies:
|
|
113
145
|
- 3
|
114
146
|
version: 1.2.3
|
115
147
|
type: :runtime
|
116
|
-
version_requirements: *
|
148
|
+
version_requirements: *id008
|
117
149
|
- !ruby/object:Gem::Dependency
|
118
150
|
name: push-notify
|
119
151
|
prerelease: false
|
120
|
-
requirement: &
|
152
|
+
requirement: &id009 !ruby/object:Gem::Requirement
|
121
153
|
none: false
|
122
154
|
requirements:
|
123
155
|
- - ">="
|
@@ -129,11 +161,11 @@ dependencies:
|
|
129
161
|
- 0
|
130
162
|
version: 0.1.0
|
131
163
|
type: :runtime
|
132
|
-
version_requirements: *
|
164
|
+
version_requirements: *id009
|
133
165
|
- !ruby/object:Gem::Dependency
|
134
166
|
name: rack
|
135
167
|
prerelease: false
|
136
|
-
requirement: &
|
168
|
+
requirement: &id010 !ruby/object:Gem::Requirement
|
137
169
|
none: false
|
138
170
|
requirements:
|
139
171
|
- - ">="
|
@@ -145,11 +177,11 @@ dependencies:
|
|
145
177
|
- 0
|
146
178
|
version: 1.0.0
|
147
179
|
type: :runtime
|
148
|
-
version_requirements: *
|
180
|
+
version_requirements: *id010
|
149
181
|
- !ruby/object:Gem::Dependency
|
150
182
|
name: rack-cache
|
151
183
|
prerelease: false
|
152
|
-
requirement: &
|
184
|
+
requirement: &id011 !ruby/object:Gem::Requirement
|
153
185
|
none: false
|
154
186
|
requirements:
|
155
187
|
- - ">="
|
@@ -161,11 +193,27 @@ dependencies:
|
|
161
193
|
- 2
|
162
194
|
version: 0.5.2
|
163
195
|
type: :runtime
|
164
|
-
version_requirements: *
|
196
|
+
version_requirements: *id011
|
197
|
+
- !ruby/object:Gem::Dependency
|
198
|
+
name: rack-rewrite
|
199
|
+
prerelease: false
|
200
|
+
requirement: &id012 !ruby/object:Gem::Requirement
|
201
|
+
none: false
|
202
|
+
requirements:
|
203
|
+
- - ">="
|
204
|
+
- !ruby/object:Gem::Version
|
205
|
+
hash: 19
|
206
|
+
segments:
|
207
|
+
- 1
|
208
|
+
- 0
|
209
|
+
- 2
|
210
|
+
version: 1.0.2
|
211
|
+
type: :runtime
|
212
|
+
version_requirements: *id012
|
165
213
|
- !ruby/object:Gem::Dependency
|
166
214
|
name: rack-throttle
|
167
215
|
prerelease: false
|
168
|
-
requirement: &
|
216
|
+
requirement: &id013 !ruby/object:Gem::Requirement
|
169
217
|
none: false
|
170
218
|
requirements:
|
171
219
|
- - ">="
|
@@ -177,11 +225,11 @@ dependencies:
|
|
177
225
|
- 0
|
178
226
|
version: 0.3.0
|
179
227
|
type: :runtime
|
180
|
-
version_requirements: *
|
228
|
+
version_requirements: *id013
|
181
229
|
- !ruby/object:Gem::Dependency
|
182
230
|
name: sqlite3-ruby
|
183
231
|
prerelease: false
|
184
|
-
requirement: &
|
232
|
+
requirement: &id014 !ruby/object:Gem::Requirement
|
185
233
|
none: false
|
186
234
|
requirements:
|
187
235
|
- - ">="
|
@@ -193,23 +241,70 @@ dependencies:
|
|
193
241
|
- 1
|
194
242
|
version: 1.2.1
|
195
243
|
type: :runtime
|
196
|
-
version_requirements: *
|
244
|
+
version_requirements: *id014
|
197
245
|
- !ruby/object:Gem::Dependency
|
198
246
|
name: tinyatom
|
199
247
|
prerelease: false
|
200
|
-
requirement: &
|
248
|
+
requirement: &id015 !ruby/object:Gem::Requirement
|
201
249
|
none: false
|
202
250
|
requirements:
|
203
251
|
- - ">="
|
204
252
|
- !ruby/object:Gem::Version
|
205
|
-
hash:
|
253
|
+
hash: 23
|
206
254
|
segments:
|
207
255
|
- 0
|
256
|
+
- 2
|
257
|
+
- 0
|
258
|
+
version: 0.2.0
|
259
|
+
type: :runtime
|
260
|
+
version_requirements: *id015
|
261
|
+
- !ruby/object:Gem::Dependency
|
262
|
+
name: twitter
|
263
|
+
prerelease: false
|
264
|
+
requirement: &id016 !ruby/object:Gem::Requirement
|
265
|
+
none: false
|
266
|
+
requirements:
|
267
|
+
- - ">="
|
268
|
+
- !ruby/object:Gem::Version
|
269
|
+
hash: 35
|
270
|
+
segments:
|
271
|
+
- 0
|
272
|
+
- 9
|
273
|
+
- 12
|
274
|
+
version: 0.9.12
|
275
|
+
type: :runtime
|
276
|
+
version_requirements: *id016
|
277
|
+
- !ruby/object:Gem::Dependency
|
278
|
+
name: vimeo
|
279
|
+
prerelease: false
|
280
|
+
requirement: &id017 !ruby/object:Gem::Requirement
|
281
|
+
none: false
|
282
|
+
requirements:
|
283
|
+
- - ">="
|
284
|
+
- !ruby/object:Gem::Version
|
285
|
+
hash: 27
|
286
|
+
segments:
|
208
287
|
- 1
|
288
|
+
- 2
|
289
|
+
- 2
|
290
|
+
version: 1.2.2
|
291
|
+
type: :runtime
|
292
|
+
version_requirements: *id017
|
293
|
+
- !ruby/object:Gem::Dependency
|
294
|
+
name: rspec
|
295
|
+
prerelease: false
|
296
|
+
requirement: &id018 !ruby/object:Gem::Requirement
|
297
|
+
none: false
|
298
|
+
requirements:
|
299
|
+
- - ~>
|
300
|
+
- !ruby/object:Gem::Version
|
301
|
+
hash: 9
|
302
|
+
segments:
|
209
303
|
- 1
|
210
|
-
|
304
|
+
- 3
|
305
|
+
version: "1.3"
|
211
306
|
type: :runtime
|
212
|
-
version_requirements: *
|
307
|
+
version_requirements: *id018
|
213
308
|
description: url sharing site framework with easy adding, title lookup, atom feed, thumbnails and embedding
|
214
309
|
email: matthewm@boedicker.org
|
215
310
|
executables:
|
@@ -236,51 +331,59 @@ files:
|
|
236
331
|
- lib/murlsh/etag_add_encoding.rb
|
237
332
|
- lib/murlsh/failproof.rb
|
238
333
|
- lib/murlsh/far_future_expires.rb
|
239
|
-
- lib/murlsh/flickr_server.rb
|
240
334
|
- lib/murlsh/head_from_get.rb
|
335
|
+
- lib/murlsh/img_store.rb
|
241
336
|
- lib/murlsh/markup.rb
|
242
337
|
- lib/murlsh/must_revalidate.rb
|
243
338
|
- lib/murlsh/openlock.rb
|
244
339
|
- lib/murlsh/plugin.rb
|
245
340
|
- lib/murlsh/sqlite3_adapter.rb
|
246
341
|
- lib/murlsh/time_ago.rb
|
247
|
-
- lib/murlsh/twitter_server.rb
|
248
|
-
- lib/murlsh/unwrap_jsonp.rb
|
249
342
|
- lib/murlsh/uri.rb
|
250
343
|
- lib/murlsh/uri_ask.rb
|
251
344
|
- lib/murlsh/url.rb
|
252
345
|
- lib/murlsh/url_body.rb
|
253
346
|
- lib/murlsh/url_server.rb
|
254
|
-
- lib/murlsh/xhtml_response.rb
|
255
347
|
- lib/murlsh/yaml_ordered_hash.rb
|
256
348
|
- murlsh.gemspec
|
257
349
|
- plugins/add_post_50_update_feed.rb
|
350
|
+
- plugins/add_post_50_update_podcast.rb
|
258
351
|
- plugins/add_post_50_update_rss.rb
|
259
352
|
- plugins/add_post_60_notify_hubs.rb
|
353
|
+
- plugins/add_pre_40_convert_mobile.rb
|
260
354
|
- plugins/add_pre_50_lookup_content_type_title.rb
|
355
|
+
- plugins/add_pre_60_flickr.rb
|
261
356
|
- plugins/add_pre_60_github_title.rb
|
262
357
|
- plugins/add_pre_60_google_code_title.rb
|
263
|
-
- plugins/
|
264
|
-
- plugins/
|
358
|
+
- plugins/add_pre_60_imageshack.rb
|
359
|
+
- plugins/add_pre_60_imgur.rb
|
360
|
+
- plugins/add_pre_60_s3_image.rb
|
361
|
+
- plugins/add_pre_60_twitter.rb
|
362
|
+
- plugins/add_pre_60_vimeo.rb
|
363
|
+
- plugins/add_pre_60_youtube.rb
|
265
364
|
- plugins/html_parse_50_hpricot.rb
|
266
|
-
- plugins/
|
267
|
-
- plugins/
|
365
|
+
- plugins/url_display_add_45_mp3.rb
|
366
|
+
- plugins/url_display_add_50_hostrec.rb
|
367
|
+
- plugins/url_display_add_55_content_type.rb
|
368
|
+
- plugins/url_display_add_60_via.rb
|
369
|
+
- plugins/url_display_add_65_time.rb
|
268
370
|
- public/css/jquery.jgrowl.css
|
269
371
|
- public/css/screen.css
|
372
|
+
- public/img/thumb/README
|
270
373
|
- public/js/comments.json
|
271
|
-
- public/js/jquery-1.4.
|
374
|
+
- public/js/jquery-1.4.3.min.js
|
272
375
|
- public/js/jquery.jgrowl_compressed.js
|
273
376
|
- public/js/js.js
|
377
|
+
- public/js/twitter-text-1.0.3.js
|
274
378
|
- public/swf/player_mp3_mini.swf
|
275
379
|
- spec/auth_spec.rb
|
276
380
|
- spec/dispatch_spec.rb
|
277
381
|
- spec/doc_spec.rb
|
382
|
+
- spec/img_store_spec.rb
|
278
383
|
- spec/markup_spec.rb
|
279
|
-
- spec/unwrap_json_spec.rb
|
280
384
|
- spec/uri_ask_spec.rb
|
281
385
|
- spec/uri_spec.rb
|
282
386
|
- spec/url_spec.rb
|
283
|
-
- spec/xhtml_response_spec.rb
|
284
387
|
- spec/yaml_ordered_hash_spec.rb
|
285
388
|
has_rdoc: true
|
286
389
|
homepage: http://github.com/mmb/murlsh
|
@@ -317,11 +420,10 @@ signing_key:
|
|
317
420
|
specification_version: 3
|
318
421
|
summary: url sharing site framework
|
319
422
|
test_files:
|
320
|
-
- spec/xhtml_response_spec.rb
|
321
423
|
- spec/auth_spec.rb
|
322
424
|
- spec/yaml_ordered_hash_spec.rb
|
323
|
-
- spec/unwrap_json_spec.rb
|
324
425
|
- spec/uri_ask_spec.rb
|
426
|
+
- spec/img_store_spec.rb
|
325
427
|
- spec/dispatch_spec.rb
|
326
428
|
- spec/markup_spec.rb
|
327
429
|
- spec/url_spec.rb
|
data/lib/murlsh/flickr_server.rb
DELETED
@@ -1,55 +0,0 @@
|
|
1
|
-
%w{
|
2
|
-
digest/sha1
|
3
|
-
open-uri
|
4
|
-
|
5
|
-
rack
|
6
|
-
|
7
|
-
murlsh
|
8
|
-
}.each { |m| require m }
|
9
|
-
|
10
|
-
module Murlsh
|
11
|
-
|
12
|
-
# Proxy for Flickr rest API to support conditional get and caching.
|
13
|
-
#
|
14
|
-
# Passes along query string with api key added, returns result from Flickr
|
15
|
-
# with cache-control, etag and last-modified headers set.
|
16
|
-
class FlickrServer
|
17
|
-
|
18
|
-
include HeadFromGet
|
19
|
-
|
20
|
-
def initialize(config); @config = config; end
|
21
|
-
|
22
|
-
# Proxy a request to the Flickr API.
|
23
|
-
def get(req)
|
24
|
-
resp = Rack::Response.new
|
25
|
-
|
26
|
-
if @config['flickr_api_key']
|
27
|
-
params = req.params.merge('api_key' => @config['flickr_api_key'])
|
28
|
-
|
29
|
-
q = params.map { |k,v| "#{URI.encode(k)}=#{URI.encode(v)}" }.join('&')
|
30
|
-
|
31
|
-
json_wrapped = open("http://api.flickr.com/services/rest/?#{q}") do |f|
|
32
|
-
f.read
|
33
|
-
end
|
34
|
-
|
35
|
-
json_parsed = Murlsh::unwrap_jsonp(json_wrapped)
|
36
|
-
|
37
|
-
resp['Cache-Control'] = 'max-age=86400'
|
38
|
-
resp['Content-Type'] = 'application/json'
|
39
|
-
resp['ETag'] = "\"#{Digest::SHA1.hexdigest(json_wrapped)}\""
|
40
|
-
resp['Last-Modified'] = Time.at(
|
41
|
-
json_parsed['photo']['dates']['lastupdate'].to_i).httpdate
|
42
|
-
|
43
|
-
resp.body = json_wrapped
|
44
|
-
|
45
|
-
resp
|
46
|
-
else
|
47
|
-
Rack::Response.new('flickr_api_key not set in config.yaml', 500,
|
48
|
-
{ 'Content-Type' => 'text/plain' })
|
49
|
-
end
|
50
|
-
|
51
|
-
end
|
52
|
-
|
53
|
-
end
|
54
|
-
|
55
|
-
end
|
@@ -1,45 +0,0 @@
|
|
1
|
-
%w{
|
2
|
-
digest/sha1
|
3
|
-
open-uri
|
4
|
-
|
5
|
-
rack
|
6
|
-
|
7
|
-
murlsh
|
8
|
-
}.each { |m| require m }
|
9
|
-
|
10
|
-
module Murlsh
|
11
|
-
|
12
|
-
# Proxy for Twitter rest API to support conditional get and caching.
|
13
|
-
#
|
14
|
-
# Passes along path and query string, returns result from Twitter with
|
15
|
-
# cache-control, etag and last-modified headers set.
|
16
|
-
class TwitterServer
|
17
|
-
|
18
|
-
include HeadFromGet
|
19
|
-
|
20
|
-
# Proxy a request to the Twitter API.
|
21
|
-
def get(req)
|
22
|
-
resp = Rack::Response.new
|
23
|
-
|
24
|
-
twitter_url = URI.join('http://api.twitter.com',
|
25
|
-
req.fullpath[/twitter\/(.+)/, 1])
|
26
|
-
|
27
|
-
json_wrapped = open(twitter_url) do |f|
|
28
|
-
resp['Content-Type'] = f.content_type
|
29
|
-
f.read
|
30
|
-
end
|
31
|
-
|
32
|
-
json_parsed = Murlsh::unwrap_jsonp(json_wrapped)
|
33
|
-
|
34
|
-
resp['Cache-Control'] = 'max-age=86400'
|
35
|
-
resp['ETag'] = "\"#{Digest::SHA1.hexdigest(json_wrapped)}\""
|
36
|
-
resp['Last-Modified'] = Time.parse(json_parsed['created_at']).httpdate
|
37
|
-
|
38
|
-
resp.body = json_wrapped
|
39
|
-
|
40
|
-
resp
|
41
|
-
end
|
42
|
-
|
43
|
-
end
|
44
|
-
|
45
|
-
end
|
data/lib/murlsh/unwrap_jsonp.rb
DELETED
@@ -1,20 +0,0 @@
|
|
1
|
-
module Murlsh
|
2
|
-
|
3
|
-
# Set the content type correctly based on accept header and user agent.
|
4
|
-
class XhtmlResponse < Rack::Response
|
5
|
-
|
6
|
-
# Set the content type to application/xhtml+xml for anything that
|
7
|
-
# claims to accept it, for anything else or IE use text/html.
|
8
|
-
def set_content_type(http_accept, http_user_agent)
|
9
|
-
self['Content-Type'] = if http_accept and
|
10
|
-
http_accept[/((\*|application)\/\*|application\/xhtml\+xml)/i] and
|
11
|
-
(!http_user_agent or !http_user_agent[/ msie /i])
|
12
|
-
'application/xhtml+xml'
|
13
|
-
else
|
14
|
-
'text/html'
|
15
|
-
end
|
16
|
-
end
|
17
|
-
|
18
|
-
end
|
19
|
-
|
20
|
-
end
|
@@ -1,14 +0,0 @@
|
|
1
|
-
module Murlsh
|
2
|
-
|
3
|
-
# skip showing host record if domain is contained in title
|
4
|
-
class Hostrec50Redundant < Plugin
|
5
|
-
|
6
|
-
@hook = 'hostrec'
|
7
|
-
|
8
|
-
def self.run(domain, url, title)
|
9
|
-
domain unless (title and domain and title.downcase.index(domain))
|
10
|
-
end
|
11
|
-
|
12
|
-
end
|
13
|
-
|
14
|
-
end
|
data/plugins/hostrec_60_skip.rb
DELETED
@@ -1,24 +0,0 @@
|
|
1
|
-
module Murlsh
|
2
|
-
|
3
|
-
# Skip showing host record for some domains.
|
4
|
-
class Hostrec60Skip < Plugin
|
5
|
-
|
6
|
-
@hook = 'hostrec'
|
7
|
-
|
8
|
-
def self.run(domain, url, title)
|
9
|
-
domain unless skips.include?(domain)
|
10
|
-
end
|
11
|
-
|
12
|
-
@skips = %w{
|
13
|
-
wikipedia.org
|
14
|
-
flickr.com
|
15
|
-
github.com
|
16
|
-
twitter.com
|
17
|
-
vimeo.com
|
18
|
-
youtube.com
|
19
|
-
}
|
20
|
-
class << self; attr_reader :skips; end
|
21
|
-
|
22
|
-
end
|
23
|
-
|
24
|
-
end
|
data/plugins/time_50_ago.rb
DELETED
@@ -1,16 +0,0 @@
|
|
1
|
-
%w{
|
2
|
-
murlsh
|
3
|
-
}.each { |m| require m }
|
4
|
-
|
5
|
-
module Murlsh
|
6
|
-
|
7
|
-
# show the time as the fuzzy amount of time that has elapsed since then
|
8
|
-
class Time50Ago < Plugin
|
9
|
-
|
10
|
-
@hook = 'time'
|
11
|
-
|
12
|
-
def self.run(time); time.extend(Murlsh::TimeAgo).ago if time; end
|
13
|
-
|
14
|
-
end
|
15
|
-
|
16
|
-
end
|
data/plugins/via_50_domain.rb
DELETED
@@ -1,36 +0,0 @@
|
|
1
|
-
%w{
|
2
|
-
murlsh
|
3
|
-
}.each { |m| require m }
|
4
|
-
|
5
|
-
module Murlsh
|
6
|
-
|
7
|
-
# Convert a via url to its display text.
|
8
|
-
#
|
9
|
-
# For most urls the domain is displayed, but for some return custom text.
|
10
|
-
class Via50Domain < Plugin
|
11
|
-
|
12
|
-
@hook = 'via'
|
13
|
-
|
14
|
-
def self.run(via)
|
15
|
-
search = via.to_s.gsub(%r{^http://}, '')
|
16
|
-
|
17
|
-
case
|
18
|
-
when m = search.match(%r{^news\.ycombinator\.com}i)
|
19
|
-
'hacker news'
|
20
|
-
when m = search.match(%r{^www\.reddit\.com/r/([a-z\d]+?)/}i)
|
21
|
-
"#{m[1]}.reddit"
|
22
|
-
when m = search.match(%r{^delicious\.com/(\w+)}i)
|
23
|
-
"delicious/#{m[1]}"
|
24
|
-
when m = search.match(%r{^twitter\.com/(\w+)}i)
|
25
|
-
"twitter/#{m[1]}"
|
26
|
-
when m = search.match(%r{^([a-z\d][a-z\d-]{0,61}[a-z\d])\.tumblr\.com/}i)
|
27
|
-
"#{m[1]}.tumblr"
|
28
|
-
else
|
29
|
-
via.domain || via
|
30
|
-
end
|
31
|
-
|
32
|
-
end
|
33
|
-
|
34
|
-
end
|
35
|
-
|
36
|
-
end
|