tweetlr 0.0.5 → 0.0.6

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.
Files changed (4) hide show
  1. data/Rakefile +2 -3
  2. data/bin/tweetlr +1 -1
  3. data/lib/tweetlr.rb +22 -2
  4. metadata +4 -4
data/Rakefile CHANGED
@@ -7,15 +7,14 @@ require 'rake/testtask'
7
7
 
8
8
  spec = Gem::Specification.new do |s|
9
9
  s.name = 'tweetlr'
10
- s.version = '0.0.5'
10
+ s.version = '0.0.6'
11
11
  s.has_rdoc = true
12
12
  s.extra_rdoc_files = ['README.md', 'LICENSE']
13
- s.summary = 'an unholy alliance between twitter and tumblr'
13
+ s.summary = %{tweetlr crawls twitter for a given term, extracts photos out of the collected tweets' short urls and posts the images to tumblr.}
14
14
  s.description = s.summary
15
15
  s.author = 'Sven Kraeuter'
16
16
  s.email = 'mail@svenkraeuter.com'
17
17
  s.homepage = "http://github.com/5v3n/#{s.name}"
18
- # s.executables = ['your_executable_here']
19
18
  s.files = %w(LICENSE README.md Rakefile) + Dir.glob("{bin,lib}/**/*")
20
19
  s.require_path = "lib"
21
20
  s.executables = ['tweetlr']
data/bin/tweetlr CHANGED
@@ -8,7 +8,7 @@ require_relative '../lib/tweetlr.rb'
8
8
 
9
9
  begin
10
10
  config_file = File.join( Dir.pwd, 'config', 'tweetlr.yml')
11
- @log_file = File.join( Dir.pwd, 'tweetlr.log')
11
+ @log_file = File.join( Dir.pwd, 'tweetlrd.log')
12
12
  CONFIG = YAML.load_file(config_file)
13
13
  TERM = CONFIG['search_term']
14
14
  USER = CONFIG['tumblr_username']
data/lib/tweetlr.rb CHANGED
@@ -1,12 +1,15 @@
1
1
  require 'httparty'
2
2
  require 'logger'
3
3
  require 'yaml'
4
+ require 'curb'
4
5
 
5
6
 
6
7
  class Tweetlr
7
8
 
8
9
  GENERATOR = %{tweetlr - http://github.com/5v3n/tweetlr}
9
-
10
+ LOCATION_START_INDICATOR = 'Location: '
11
+ LOCATION_STOP_INDICATOR = "\r\n"
12
+
10
13
  def initialize(email, password, cookie=nil, since_id=nil, term=nil, config_file) #TODO use a hash or sth more elegant here...
11
14
  @log = Logger.new(File.join( Dir.pwd, 'tweetlr.log'))
12
15
  config = YAML.load_file(config_file)
@@ -81,6 +84,7 @@ class Tweetlr
81
84
  url = image_url_picplz link if link.index 'picplz'
82
85
  url = image_url_twitpic link if link.index 'twitpic'
83
86
  url = image_url_yfrog link if link.index 'yfrog'
87
+ url = image_url_imgly link if link.index 'img.ly'
84
88
  end
85
89
  url
86
90
  end
@@ -104,13 +108,29 @@ class Tweetlr
104
108
  end
105
109
  #find the image's url for a twitpic link
106
110
  def image_url_twitpic(link_url)
107
- "http://twitpic.com/show/full/#{extract_id link_url}"
111
+ image_url_redirect link_url, "http://twitpic.com/show/full/"
108
112
  end
109
113
  #find the image'S url for a yfrog link
110
114
  def image_url_yfrog(link_url)
111
115
  response = HTTParty.get("http://www.yfrog.com/api/oembed?url=#{link_url}")
112
116
  response.parsed_response['url']
113
117
  end
118
+ #find the image's url for a img.ly link
119
+ def image_url_imgly(link_url)
120
+ image_url_redirect link_url, "http://img.ly/show/full/", "\r\n"
121
+ end
122
+
123
+ # extract image url from services like twitpic & img.ly that do not offer oembed interfaces
124
+ def image_url_redirect(link_url, service_endpoint, stop_indicator = LOCATION_STOP_INDICATOR)
125
+ resp = Curl::Easy.http_get("#{service_endpoint}#{extract_id link_url}") { |res| res.follow_location = true }
126
+ if(resp.header_str.index(LOCATION_START_INDICATOR) && resp.header_str.index(stop_indicator))
127
+ start = resp.header_str.index(LOCATION_START_INDICATOR) + LOCATION_START_INDICATOR.size
128
+ stop = resp.header_str.index(stop_indicator, start)
129
+ resp.header_str[start...stop]
130
+ else
131
+ nil
132
+ end
133
+ end
114
134
 
115
135
  #extract the pic id from a given <code>link</code>
116
136
  def extract_id(link)
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: tweetlr
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.0.5
5
+ version: 0.0.6
6
6
  platform: ruby
7
7
  authors:
8
8
  - Sven Kraeuter
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2011-04-25 00:00:00 Z
13
+ date: 2011-05-03 00:00:00 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: daemons
@@ -45,7 +45,7 @@ dependencies:
45
45
  version: "0"
46
46
  type: :runtime
47
47
  version_requirements: *id003
48
- description: an unholy alliance between twitter and tumblr
48
+ description: tweetlr crawls twitter for a given term, extracts photos out of the collected tweets' short urls and posts the images to tumblr.
49
49
  email: mail@svenkraeuter.com
50
50
  executables:
51
51
  - tweetlr
@@ -86,6 +86,6 @@ rubyforge_project:
86
86
  rubygems_version: 1.7.2
87
87
  signing_key:
88
88
  specification_version: 3
89
- summary: an unholy alliance between twitter and tumblr
89
+ summary: tweetlr crawls twitter for a given term, extracts photos out of the collected tweets' short urls and posts the images to tumblr.
90
90
  test_files: []
91
91