neo4apis-twitter 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +12 -5
- data/lib/neo4apis/twitter.rb +7 -26
- data/lib/neo4apis/twitter/version.rb +4 -2
- metadata +1 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 43816b4c7d84582347f3d469727ff75ab9219cad
|
4
|
+
data.tar.gz: b7fb544aa5507bec0c2094723479baa4078a39f7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fec12fd33e54c2601938c8b5e816ca99a26f8e359027aa8dcc1153d7b51b01fcb306024a8628b3c0d6f9e852fa53528a18fb19e85f43503903c01559e1a322a3
|
7
|
+
data.tar.gz: e00ac6020eed2fdc76fd9fe02303c2f66fe43c7870ce61b52aee6a9b8112ec78a04f4f26a844578ba298c8dbac267e7912ed4a5f7d2ef17c6ae0bbb284dea18f
|
data/README.md
CHANGED
@@ -1,16 +1,23 @@
|
|
1
1
|
|
2
2
|
neo4apis-twitter is a ruby gem for making importing data from twitter to neo4j easy
|
3
3
|
|
4
|
-
|
4
|
+
This adapter supports objects created from the `twitter` gem.
|
5
5
|
|
6
6
|
```ruby
|
7
7
|
|
8
8
|
twitter_client = Twitter::REST::Client.new ...
|
9
9
|
|
10
|
-
neo4japis_twitter = Neo4Apis::Twitter.new(Neo4j::Session.open,
|
11
|
-
|
12
|
-
neo4japis_twitter.batch do
|
13
|
-
|
10
|
+
neo4japis_twitter = Neo4Apis::Twitter.new(Neo4j::Session.open, import_retweets: true)
|
11
|
+
|
12
|
+
neo4japis_twitter.batch do
|
13
|
+
twitter_client.search("ebola", :result_type => "recent").take(100).each do |tweet|
|
14
|
+
# Imports:
|
15
|
+
# * The tweet
|
16
|
+
# * The tweeter,
|
17
|
+
# * The original tweet if a retweet
|
18
|
+
# * The user for the original tweet
|
19
|
+
import :Tweet, tweet
|
20
|
+
end
|
14
21
|
end
|
15
22
|
|
16
23
|
```
|
data/lib/neo4apis/twitter.rb
CHANGED
@@ -2,32 +2,13 @@ require 'neo4apis'
|
|
2
2
|
|
3
3
|
module Neo4Apis
|
4
4
|
class Twitter < Base
|
5
|
-
|
5
|
+
uuid :Tweet, :id
|
6
|
+
uuid :User, :id
|
6
7
|
|
7
|
-
|
8
|
-
|
8
|
+
importer :Tweet do |tweet|
|
9
|
+
user_node = import :User, tweet.user
|
9
10
|
|
10
|
-
|
11
|
-
|
12
|
-
options[:uuids] = (options[:uuids] || {}).merge({
|
13
|
-
Tweet: :id,
|
14
|
-
User: :id
|
15
|
-
})
|
16
|
-
|
17
|
-
super(neo4j_client, options)
|
18
|
-
end
|
19
|
-
|
20
|
-
def import_search(*args)
|
21
|
-
@client.search(*args).take(100).each do |tweet|
|
22
|
-
add_tweet(tweet)
|
23
|
-
end
|
24
|
-
end
|
25
|
-
|
26
|
-
private
|
27
|
-
|
28
|
-
def add_tweet(tweet)
|
29
|
-
user_node = add_user(tweet.user)
|
30
|
-
retweeted_tweet_node = add_tweet(tweet.retweeted_tweet) if tweet.retweeted_tweet?
|
11
|
+
retweeted_tweet_node = import :Tweet, tweet.retweeted_tweet if options[:import_retweets] && tweet.retweeted_tweet?
|
31
12
|
|
32
13
|
node = add_node :Tweet, {
|
33
14
|
id: tweet.id,
|
@@ -35,12 +16,12 @@ module Neo4Apis
|
|
35
16
|
}
|
36
17
|
|
37
18
|
add_relationship(:tweeted, user_node, node)
|
38
|
-
add_relationship(:retweets, node, retweeted_tweet_node) if tweet.retweeted_tweet?
|
19
|
+
add_relationship(:retweets, node, retweeted_tweet_node) if options[:import_retweets] && tweet.retweeted_tweet?
|
39
20
|
|
40
21
|
node
|
41
22
|
end
|
42
23
|
|
43
|
-
|
24
|
+
importer :User do |user|
|
44
25
|
add_node :User, {
|
45
26
|
id: user.id,
|
46
27
|
screen_name: user.screen_name,
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: neo4apis-twitter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Brian Underwood
|
@@ -62,4 +62,3 @@ signing_key:
|
|
62
62
|
specification_version: 4
|
63
63
|
summary: An ruby gem to import twitter data to neo4j
|
64
64
|
test_files: []
|
65
|
-
has_rdoc:
|