murlsh 1.3.1 → 1.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (40) hide show
  1. data/.htaccess +1 -0
  2. data/README.textile +6 -12
  3. data/Rakefile +19 -17
  4. data/VERSION +1 -1
  5. data/bin/murlsh +2 -35
  6. data/config.ru +1 -1
  7. data/config.yaml +9 -9
  8. data/lib/murlsh/ask.rb +15 -0
  9. data/lib/murlsh/cp_r_safe.rb +33 -0
  10. data/lib/murlsh/doc.rb +1 -16
  11. data/lib/murlsh/install.rb +28 -0
  12. data/lib/murlsh/plugin.rb +0 -2
  13. data/lib/murlsh/search_conditions.rb +12 -2
  14. data/lib/murlsh/search_grammar.rb +225 -0
  15. data/lib/murlsh/search_grammar.treetop +34 -0
  16. data/lib/murlsh/uri_ask.rb +10 -14
  17. data/lib/murlsh/url_body.rb +33 -19
  18. data/lib/murlsh/url_result_set.rb +12 -2
  19. data/lib/murlsh.rb +4 -1
  20. data/murlsh.gemspec +26 -21
  21. data/plugins/add_post_50_update_m3u.rb +35 -0
  22. data/plugins/{add_pre_41_unajax_twitter.rb → add_pre_30_unajax_twitter.rb} +1 -1
  23. data/plugins/add_pre_35_url_clean.rb +21 -0
  24. data/plugins/add_pre_50_media_thumbnail.rb +6 -3
  25. data/plugins/add_pre_65_html_thumb.rb +1 -3
  26. data/plugins/url_display_add_60_via.rb +4 -1
  27. data/public/css/jquery.jgrowl.css +11 -7
  28. data/public/css/screen.css +3 -2
  29. data/public/js/jquery-1.5.min.js +16 -0
  30. data/public/js/jquery.jgrowl_compressed.js +40 -32
  31. data/public/js/js.js +3 -43
  32. data/public/js/{twitter-text-1.0.4.js → twitter-text-1.3.1.js} +25 -22
  33. data/spec/doc_spec.rb +10 -4
  34. metadata +75 -61
  35. data/lib/murlsh/sqlite3_adapter.rb +0 -13
  36. data/plugins/add_pre_60_flickr.rb +0 -27
  37. data/plugins/add_pre_60_vimeo.rb +0 -38
  38. data/plugins/html_parse_50_nokogiri.rb +0 -16
  39. data/public/js/comments.json +0 -1
  40. data/public/js/jquery-1.4.4.min.js +0 -167
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: 25
4
+ hash: 7
5
5
  prerelease:
6
6
  segments:
7
7
  - 1
8
- - 3
9
- - 1
10
- version: 1.3.1
8
+ - 4
9
+ - 0
10
+ version: 1.4.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: 2011-01-15 00:00:00 -05:00
18
+ date: 2011-01-31 00:00:00 -05:00
19
19
  default_executable: murlsh
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -66,26 +66,10 @@ dependencies:
66
66
  version: 2.1.2
67
67
  type: :runtime
68
68
  version_requirements: *id003
69
- - !ruby/object:Gem::Dependency
70
- name: flickraw
71
- prerelease: false
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
69
  - !ruby/object:Gem::Dependency
86
70
  name: htmlentities
87
71
  prerelease: false
88
- requirement: &id005 !ruby/object:Gem::Requirement
72
+ requirement: &id004 !ruby/object:Gem::Requirement
89
73
  none: false
90
74
  requirements:
91
75
  - - ">="
@@ -97,11 +81,11 @@ dependencies:
97
81
  - 0
98
82
  version: 4.2.0
99
83
  type: :runtime
100
- version_requirements: *id005
84
+ version_requirements: *id004
101
85
  - !ruby/object:Gem::Dependency
102
86
  name: json
103
87
  prerelease: false
104
- requirement: &id006 !ruby/object:Gem::Requirement
88
+ requirement: &id005 !ruby/object:Gem::Requirement
105
89
  none: false
106
90
  requirements:
107
91
  - - ">="
@@ -113,11 +97,11 @@ dependencies:
113
97
  - 3
114
98
  version: 1.2.3
115
99
  type: :runtime
116
- version_requirements: *id006
100
+ version_requirements: *id005
117
101
  - !ruby/object:Gem::Dependency
118
102
  name: nokogiri
119
103
  prerelease: false
120
- requirement: &id007 !ruby/object:Gem::Requirement
104
+ requirement: &id006 !ruby/object:Gem::Requirement
121
105
  none: false
122
106
  requirements:
123
107
  - - ~>
@@ -128,11 +112,11 @@ dependencies:
128
112
  - 0
129
113
  version: "1.0"
130
114
  type: :runtime
131
- version_requirements: *id007
115
+ version_requirements: *id006
132
116
  - !ruby/object:Gem::Dependency
133
117
  name: plumnailer
134
118
  prerelease: false
135
- requirement: &id008 !ruby/object:Gem::Requirement
119
+ requirement: &id007 !ruby/object:Gem::Requirement
136
120
  none: false
137
121
  requirements:
138
122
  - - ">="
@@ -144,6 +128,21 @@ dependencies:
144
128
  - 0
145
129
  version: 0.1.0
146
130
  type: :runtime
131
+ version_requirements: *id007
132
+ - !ruby/object:Gem::Dependency
133
+ name: postrank-uri
134
+ prerelease: false
135
+ requirement: &id008 !ruby/object:Gem::Requirement
136
+ none: false
137
+ requirements:
138
+ - - ~>
139
+ - !ruby/object:Gem::Version
140
+ hash: 15
141
+ segments:
142
+ - 1
143
+ - 0
144
+ version: "1.0"
145
+ type: :runtime
147
146
  version_requirements: *id008
148
147
  - !ruby/object:Gem::Dependency
149
148
  name: public_suffix_service
@@ -257,19 +256,18 @@ dependencies:
257
256
  type: :runtime
258
257
  version_requirements: *id015
259
258
  - !ruby/object:Gem::Dependency
260
- name: sqlite3-ruby
259
+ name: sqlite3
261
260
  prerelease: false
262
261
  requirement: &id016 !ruby/object:Gem::Requirement
263
262
  none: false
264
263
  requirements:
265
- - - ">="
264
+ - - ~>
266
265
  - !ruby/object:Gem::Version
267
- hash: 29
266
+ hash: 9
268
267
  segments:
269
268
  - 1
270
- - 2
271
- - 1
272
- version: 1.2.1
269
+ - 3
270
+ version: "1.3"
273
271
  type: :runtime
274
272
  version_requirements: *id016
275
273
  - !ruby/object:Gem::Dependency
@@ -289,9 +287,24 @@ dependencies:
289
287
  type: :runtime
290
288
  version_requirements: *id017
291
289
  - !ruby/object:Gem::Dependency
292
- name: twitter
290
+ name: treetop
293
291
  prerelease: false
294
292
  requirement: &id018 !ruby/object:Gem::Requirement
293
+ none: false
294
+ requirements:
295
+ - - ~>
296
+ - !ruby/object:Gem::Version
297
+ hash: 7
298
+ segments:
299
+ - 1
300
+ - 4
301
+ version: "1.4"
302
+ type: :runtime
303
+ version_requirements: *id018
304
+ - !ruby/object:Gem::Dependency
305
+ name: twitter
306
+ prerelease: false
307
+ requirement: &id019 !ruby/object:Gem::Requirement
295
308
  none: false
296
309
  requirements:
297
310
  - - ">="
@@ -303,27 +316,26 @@ dependencies:
303
316
  - 12
304
317
  version: 0.9.12
305
318
  type: :runtime
306
- version_requirements: *id018
319
+ version_requirements: *id019
307
320
  - !ruby/object:Gem::Dependency
308
- name: vimeo
321
+ name: fakeweb
309
322
  prerelease: false
310
- requirement: &id019 !ruby/object:Gem::Requirement
323
+ requirement: &id020 !ruby/object:Gem::Requirement
311
324
  none: false
312
325
  requirements:
313
- - - ">="
326
+ - - ~>
314
327
  - !ruby/object:Gem::Version
315
- hash: 27
328
+ hash: 9
316
329
  segments:
317
330
  - 1
318
- - 2
319
- - 2
320
- version: 1.2.2
321
- type: :runtime
322
- version_requirements: *id019
331
+ - 3
332
+ version: "1.3"
333
+ type: :development
334
+ version_requirements: *id020
323
335
  - !ruby/object:Gem::Dependency
324
336
  name: flog
325
337
  prerelease: false
326
- requirement: &id020 !ruby/object:Gem::Requirement
338
+ requirement: &id021 !ruby/object:Gem::Requirement
327
339
  none: false
328
340
  requirements:
329
341
  - - ">="
@@ -335,11 +347,11 @@ dependencies:
335
347
  - 0
336
348
  version: 2.5.0
337
349
  type: :development
338
- version_requirements: *id020
350
+ version_requirements: *id021
339
351
  - !ruby/object:Gem::Dependency
340
352
  name: rack-test
341
353
  prerelease: false
342
- requirement: &id021 !ruby/object:Gem::Requirement
354
+ requirement: &id022 !ruby/object:Gem::Requirement
343
355
  none: false
344
356
  requirements:
345
357
  - - ~>
@@ -350,11 +362,11 @@ dependencies:
350
362
  - 5
351
363
  version: "0.5"
352
364
  type: :development
353
- version_requirements: *id021
365
+ version_requirements: *id022
354
366
  - !ruby/object:Gem::Dependency
355
367
  name: rspec
356
368
  prerelease: false
357
- requirement: &id022 !ruby/object:Gem::Requirement
369
+ requirement: &id023 !ruby/object:Gem::Requirement
358
370
  none: false
359
371
  requirements:
360
372
  - - ~>
@@ -365,8 +377,8 @@ dependencies:
365
377
  - 0
366
378
  version: "2.0"
367
379
  type: :development
368
- version_requirements: *id022
369
- description: url sharing site framework with easy adding, title lookup, atom feed, thumbnails and embedding
380
+ version_requirements: *id023
381
+ description: Host your bookmarks or maintain a link blog
370
382
  email: matthewm@boedicker.org
371
383
  executables:
372
384
  - murlsh
@@ -384,9 +396,11 @@ files:
384
396
  - config.ru
385
397
  - config.yaml
386
398
  - lib/murlsh.rb
399
+ - lib/murlsh/ask.rb
387
400
  - lib/murlsh/auth.rb
388
401
  - lib/murlsh/build_md5.rb
389
402
  - lib/murlsh/build_query.rb
403
+ - lib/murlsh/cp_r_safe.rb
390
404
  - lib/murlsh/delicious_parse.rb
391
405
  - lib/murlsh/dispatch.rb
392
406
  - lib/murlsh/doc.rb
@@ -396,6 +410,7 @@ files:
396
410
  - lib/murlsh/head_from_get.rb
397
411
  - lib/murlsh/image_list.rb
398
412
  - lib/murlsh/img_store.rb
413
+ - lib/murlsh/install.rb
399
414
  - lib/murlsh/json_body.rb
400
415
  - lib/murlsh/json_server.rb
401
416
  - lib/murlsh/jsonp_body.rb
@@ -404,7 +419,8 @@ files:
404
419
  - lib/murlsh/openlock.rb
405
420
  - lib/murlsh/plugin.rb
406
421
  - lib/murlsh/search_conditions.rb
407
- - lib/murlsh/sqlite3_adapter.rb
422
+ - lib/murlsh/search_grammar.rb
423
+ - lib/murlsh/search_grammar.treetop
408
424
  - lib/murlsh/time_ago.rb
409
425
  - lib/murlsh/uri_ask.rb
410
426
  - lib/murlsh/uri_domain.rb
@@ -416,26 +432,25 @@ files:
416
432
  - lib/murlsh/yaml_ordered_hash.rb
417
433
  - murlsh.gemspec
418
434
  - plugins/add_post_50_update_feed.rb
435
+ - plugins/add_post_50_update_m3u.rb
419
436
  - plugins/add_post_50_update_podcast.rb
420
437
  - plugins/add_post_50_update_rss.rb
421
438
  - plugins/add_post_60_notify_hubs.rb
439
+ - plugins/add_pre_30_unajax_twitter.rb
440
+ - plugins/add_pre_35_url_clean.rb
422
441
  - plugins/add_pre_40_convert_mobile.rb
423
- - plugins/add_pre_41_unajax_twitter.rb
424
442
  - plugins/add_pre_45_supplied_thumbnail.rb
425
443
  - plugins/add_pre_50_lookup_content_type_title.rb
426
444
  - plugins/add_pre_50_media_thumbnail.rb
427
445
  - plugins/add_pre_50_open_graph_image.rb
428
- - plugins/add_pre_60_flickr.rb
429
446
  - plugins/add_pre_60_github_title.rb
430
447
  - plugins/add_pre_60_google_code_title.rb
431
448
  - plugins/add_pre_60_imgur.rb
432
449
  - plugins/add_pre_60_s3_image.rb
433
450
  - plugins/add_pre_60_twitter.rb
434
- - plugins/add_pre_60_vimeo.rb
435
451
  - plugins/add_pre_65_html_thumb.rb
436
452
  - plugins/add_pre_65_img_thumb.rb
437
453
  - plugins/avatar_50_gravatar.rb
438
- - plugins/html_parse_50_nokogiri.rb
439
454
  - plugins/url_display_add_45_audio.rb
440
455
  - plugins/url_display_add_50_hostrec.rb
441
456
  - plugins/url_display_add_55_content_type.rb
@@ -444,11 +459,10 @@ files:
444
459
  - public/css/jquery.jgrowl.css
445
460
  - public/css/screen.css
446
461
  - public/img/thumb/.gitignore
447
- - public/js/comments.json
448
- - public/js/jquery-1.4.4.min.js
462
+ - public/js/jquery-1.5.min.js
449
463
  - public/js/jquery.jgrowl_compressed.js
450
464
  - public/js/js.js
451
- - public/js/twitter-text-1.0.4.js
465
+ - public/js/twitter-text-1.3.1.js
452
466
  - spec/auth_spec.rb
453
467
  - spec/dispatch_spec.rb
454
468
  - spec/doc_spec.rb
@@ -491,7 +505,7 @@ rubyforge_project:
491
505
  rubygems_version: 1.4.2
492
506
  signing_key:
493
507
  specification_version: 3
494
- summary: url sharing site framework
508
+ summary: Host your bookmarks or maintain a link blog
495
509
  test_files:
496
510
  - spec/auth_spec.rb
497
511
  - spec/dispatch_spec.rb
@@ -1,13 +0,0 @@
1
- require 'active_record/connection_adapters/sqlite3_adapter'
2
-
3
- class ActiveRecord::ConnectionAdapters::SQLite3Adapter
4
-
5
- # Add MURLSHMATCH function for regex matching.
6
- def initialize(connection, logger, config)
7
- super
8
- @connection.create_function('MURLSHMATCH', 2) do |func,search_in,search_for|
9
- func.result = search_in.to_s.match(/#{search_for}/i) ? 1 : nil
10
- end
11
- end
12
-
13
- end
@@ -1,27 +0,0 @@
1
- require 'flickraw'
2
-
3
- require 'murlsh'
4
-
5
- module Murlsh
6
-
7
- # Set the title of Flickr photos.
8
- class AddPre60Flickr < Plugin
9
-
10
- @hook = 'add_pre'
11
-
12
- FlickrRe = %r{^http://(?:www\.)?flickr\.com/photos/[@\w\-]+?/([\d]+)}i
13
-
14
- def self.run(url, config)
15
- unless url.user_supplied_title? or config['flickr_api_key'].to_s.empty?
16
- if photo_id = url.url[FlickrRe, 1]
17
- FlickRaw.api_key = config['flickr_api_key']
18
- info = flickr.photos.getInfo(:photo_id => photo_id)
19
-
20
- url.title = "#{info.title} by #{info.owner.username}"
21
- end
22
- end
23
- end
24
-
25
- end
26
-
27
- end
@@ -1,38 +0,0 @@
1
- require 'cgi'
2
-
3
- require 'vimeo'
4
-
5
- require 'murlsh'
6
-
7
- module Murlsh
8
-
9
- # Set title and thumbnail url for Vimeo urls.
10
- class AddPre60Vimeo < Plugin
11
-
12
- @hook = 'add_pre'
13
-
14
- VimeoRe = %r{^http://(?:www\.)?vimeo\.com/(\d+)$}i
15
- StorageDir = File.join(File.dirname(__FILE__), '..', 'public', 'img',
16
- 'thumb')
17
-
18
- def self.run(url, config)
19
- if id = url.url[VimeoRe, 1]
20
- info = Vimeo::Simple::Video.info(id)[0]
21
-
22
- unless url.user_supplied_title?
23
- url.title = "#{info['title']} by #{info['user_name']}"
24
- end
25
-
26
- thumb_storage = Murlsh::ImgStore.new(StorageDir,
27
- :user_agent => config['user_agent'])
28
- stored_filename = thumb_storage.store_url(info['thumbnail_small']) do |i|
29
- max_side = config.fetch('thumbnail_max_side', 90)
30
- i.extend(Murlsh::ImageList).resize_down!(max_side)
31
- end
32
- url.thumbnail_url = "img/thumb/#{CGI.escape(stored_filename)}"
33
- end
34
- end
35
-
36
- end
37
-
38
- end
@@ -1,16 +0,0 @@
1
- require 'nokogiri'
2
-
3
- require 'murlsh'
4
-
5
- module Murlsh
6
-
7
- # Parse HTML with Nokogiri and return a Nokogiri doc.
8
- class HtmlParse50Nokogiri < Plugin
9
-
10
- @hook = 'html_parse'
11
-
12
- def self.run(x); Nokogiri(x); end
13
-
14
- end
15
-
16
- end
@@ -1 +0,0 @@
1
- {"http://www.youtube.com/watch?v=KrfpnbGXL70":[{"createdTime":1277520298,"updatedTime":1277520298,"authorAvatar":"http://www.gravatar.com/avatar/355af1bc931baca530e66571923286b4?s=16","authorName":"mmb","authorUrl":"http://matthewm.boedicker.org/","comment":"Through SOAP!"},{"createdTime":1277520298,"updatedTime":1277520298,"authorAvatar":"http://www.gravatar.com/avatar/355af1bc931baca530e66571923286b4?s=16","authorName":"mmb","authorUrl":"http://matthewm.boedicker.org/","comment":"dead, can be seen at http://jz10.java.no/java-4-ever-trailer.html"}]}