cinch-url-scraper 1.0.0 → 1.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +38 -0
- data/lib/cinch/plugins/urlscraper.rb +21 -8
- metadata +2 -2
data/README.md
CHANGED
@@ -1,3 +1,41 @@
|
|
1
1
|
# Cinch Url Scraper plugin
|
2
2
|
|
3
3
|
A Cinch plugin to get information about posted URLs.
|
4
|
+
|
5
|
+
## Installation
|
6
|
+
|
7
|
+
First install the gem by running:
|
8
|
+
|
9
|
+
```bash
|
10
|
+
gem install cinch-url-scrapper
|
11
|
+
```
|
12
|
+
|
13
|
+
Then load it in your bot:
|
14
|
+
|
15
|
+
```ruby
|
16
|
+
require "cinch"
|
17
|
+
require "cinch/plugins/urlscraper"
|
18
|
+
|
19
|
+
bot = Cinch::Bot.new do
|
20
|
+
configure do |c|
|
21
|
+
c.plugins.plugins = [Cinch::Plugins::UmlScraper]
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
bot.start
|
26
|
+
```
|
27
|
+
|
28
|
+
## Commands
|
29
|
+
|
30
|
+
```irc
|
31
|
+
<url> # display url title / information
|
32
|
+
```
|
33
|
+
|
34
|
+
## Example
|
35
|
+
|
36
|
+
<mpapis>: git@gist.github.com:3505088.git:
|
37
|
+
<smfbot>: Title: rvm setup for projects — Gist (at gist.github.com, mpapis on 2012-08-28 15:56), Url: https://gist.github.com/3505088
|
38
|
+
|
39
|
+
## Development
|
40
|
+
|
41
|
+
Run the `./test-run.sh` script to play with results of your changes in channel listed in `example/config.yaml`
|
@@ -8,7 +8,6 @@ module Cinch
|
|
8
8
|
module Plugins
|
9
9
|
class UrlScraper
|
10
10
|
include Cinch::Plugin
|
11
|
-
set :react_on, :channel
|
12
11
|
|
13
12
|
listen_to :channel
|
14
13
|
def listen(m)
|
@@ -19,9 +18,15 @@ module Cinch
|
|
19
18
|
@agent.max_history = 0
|
20
19
|
end
|
21
20
|
|
22
|
-
URI.extract(m.message, ["http", "https"]) do |link|
|
21
|
+
URI.extract(m.message.gsub(/git@(gist.github.com):/,'git://\1/'), ["http", "https", "git"]).map do |link|
|
22
|
+
link=~/^(.*?)[:;,\)]?$/
|
23
|
+
$1
|
24
|
+
end.each do |link|
|
23
25
|
# Fetch data
|
24
26
|
begin
|
27
|
+
if git = link =~ /^git:\/\/(gist.github.com\/.*)\.git$/
|
28
|
+
link = "https://#{$1}"
|
29
|
+
end
|
25
30
|
uri = URI.parse(link)
|
26
31
|
page = @agent.get(link)
|
27
32
|
rescue Mechanize::ResponseCodeError
|
@@ -69,12 +74,20 @@ module Cinch
|
|
69
74
|
owner = page.search("//div[@class='name']/a").inner_html
|
70
75
|
|
71
76
|
# Get time
|
72
|
-
age =
|
73
|
-
age = age.
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
77
|
+
age = page.search("//span[@class='date']/time")
|
78
|
+
age = age.first[:datetime] rescue age.text if age
|
79
|
+
age = Time.parse(age) rescue nil
|
80
|
+
age = age.strftime("%Y-%m-%d %H:%M") if age
|
81
|
+
|
82
|
+
if git
|
83
|
+
m.reply "Title: %s (at %s, %s on %s), Url: %s" % [
|
84
|
+
title, uri.host, owner, age, link
|
85
|
+
]
|
86
|
+
else
|
87
|
+
m.reply "Title: %s (at %s, %s on %s)" % [
|
88
|
+
title, uri.host, owner, age
|
89
|
+
]
|
90
|
+
end
|
78
91
|
when "pastie.org"
|
79
92
|
# Get time
|
80
93
|
age = Time.parse(page.search("//span[@class='typo_date']").text)
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cinch-url-scraper
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.1.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-08-30 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: cinch
|