Created
December 17, 2017 10:02
-
-
Save afifmisran/849f52015a25326ea6f4f517b3550e78 to your computer and use it in GitHub Desktop.
SyntaxError: import * only allowed at module level
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env python | |
# encoding: utf-8 | |
import tweepy #https://github.com/tweepy/tweepy | |
import json | |
import sys | |
import twitter | |
import klout | |
from datetime import datetime | |
from difflib import SequenceMatcher | |
created_at_format = '%a %b %d %H:%M:%S +0000 %Y' | |
#Twitter API credentials | |
consumer_key = "ZdCIeH1wekGEA6YdLcKw9WiHs" | |
consumer_secret = "OrmIPhqC9MeDZ5J9lcSBNTXvranazCsGsVKPrWD6sAKup3pHsH" | |
access_key = "238085527-vpA5OdS3WJyp6psQCS5Rj5FSfOtoDMKVdUPrMoD7" | |
access_secret = "9G735d1HzdTK72gdWnEGGGfTbEZNw9EBuEWQsd4d1M7Q0" | |
#----------------------------------------------------------------------- | |
# create twitter API object | |
#----------------------------------------------------------------------- | |
twitter = Twitter(auth = OAuth(access_key, access_secret, consumer_key, consumer_secret)) | |
#----------------------------------------------------------------------- | |
# this is the user we're going to query. | |
#----------------------------------------------------------------------- | |
class Result(): | |
screen_name = username | |
#----------------------------------------------------------------------- | |
# query the user timeline. | |
# twitter API docs: | |
# https://dev.twitter.com/rest/reference/get/statuses/user_timeline | |
#----------------------------------------------------------------------- | |
results = twitter.statuses.user_timeline(screen_name = screen_name, count=50, since_id=11, include_rts= False, exclude_replies= True) | |
#----------------------------------------------------------------------- | |
# loop through each status item, and print its content. | |
#----------------------------------------------------------------------- | |
for status in results: | |
print ("(%s) %s" % (status["created_at"], status["text"].encode("ascii", "ignore"))) | |
#---------------------------- TWEET DELAY ------------------------------ | |
#----------------------------------------------------------------------- | |
# 1st and 2nd latest tweet | |
#----------------------------------------------------------------------- | |
first_timestamp = datetime.strptime(results[0]["created_at"], created_at_format) | |
second_timestamp = datetime.strptime(results[1]["created_at"], created_at_format) | |
diff_dt1 = (first_timestamp - second_timestamp).total_seconds()/60 | |
#----------------------------------------------------------------------- | |
# 2nd and 3rd latest tweet | |
#----------------------------------------------------------------------- | |
second_timestamp = datetime.strptime(results[1]["created_at"], created_at_format) | |
third_timestamp = datetime.strptime(results[2]["created_at"], created_at_format) | |
diff_dt2 = (second_timestamp - third_timestamp).total_seconds()/60 | |
#----------------------------------------------------------------------- | |
# 3rd and 4th latest tweet | |
#----------------------------------------------------------------------- | |
third_timestamp = datetime.strptime(results[2]["created_at"], created_at_format) | |
forth_timestamp = datetime.strptime(results[3]["created_at"], created_at_format) | |
diff_dt3 = (third_timestamp - forth_timestamp).total_seconds()/60 | |
#----------------------------------------------------------------------- | |
# print the differences | |
#----------------------------------------------------------------------- | |
total_dt = diff_dt1+diff_dt2+diff_dt3 | |
percent1 = (diff_dt1/total_dt)*100 | |
percent2 = (diff_dt2/total_dt)*100 | |
percent3 = (diff_dt3/total_dt)*100 | |
mean_dt = total_dt/3 | |
total_percent = percent1+percent2+percent3 | |
delay_percent = total_percent/3 | |
#------------------------ DUPLICATE TWEET ------------------------------ | |
#----------------------------------------------------------------------- | |
# 1st and 2nd latest tweet | |
#----------------------------------------------------------------------- | |
tweet1 = (results[0]["text"]) | |
tweet2 = (results[1]["text"]) | |
s = SequenceMatcher (None, tweet1, tweet2) | |
d1 = s.ratio()*100 | |
#----------------------------------------------------------------------- | |
# 2nd and 3rd latest tweet | |
#----------------------------------------------------------------------- | |
tweet2 = (results[1]["text"]) | |
tweet3 = (results[2]["text"]) | |
s = SequenceMatcher (None, tweet2, tweet3) | |
d2 = s.ratio()*100 | |
#----------------------------------------------------------------------- | |
# 3rd and 4th latest tweet | |
#----------------------------------------------------------------------- | |
tweet3 = (results[2]["text"]) | |
tweet4 = (results[3]["text"]) | |
s = SequenceMatcher (None, tweet3, tweet4) | |
d3 = s.ratio()*100 | |
#---------------------------- KLOUT SCORE ------------------------------ | |
from klout import * | |
# Make the Klout object | |
k = Klout('8mn8zzyn7jssra56pphkdwff') | |
# Get kloutId of the user by inputting a twitter screenName | |
screenName = screen_name | |
kloutId = k.identity.klout(screenName=screenName).get('id') | |
# By default all communication is not secure (HTTP). An optional secure parameter | |
# can be sepcified for secure (HTTPS) communication | |
k = Klout('8mn8zzyn7jssra56pphkdwff', secure=True) | |
# Optionally a timeout parameter (seconds) can also be sent with all calls | |
score = k.user.score(kloutId=kloutId, timeout=5).get('score') | |
#--------------------- GET_SCORE ------------------------# | |
# Get klout score of the user | |
score = k.user.score(kloutId=kloutId).get('score') | |
#----------------------------------------------------------------------- | |
# RESULT | |
#----------------------------------------------------------------------- | |
print("") | |
if diff_dt1 == diff_dt2: | |
print ("Inter-tweet delay = Fix (%.1f minutes)"% (mean_dt)) | |
if diff_dt2 == diff_dt3: | |
print ("Inter-tweet delay = Fix (%.1f minutes)"% (mean_dt)) | |
else: print ("Inter-tweet delay = Random (%.1f minutes)"% (mean_dt)) | |
print("Tweet delay = %.1f%%" %(delay_percent)) | |
print("Duplicate tweet = %.1f%%" %(average)) | |
print ("Klout score = %.1f%% "%(score)) | |
botlike=(score+average+delay_percent)/300*100 | |
print("Bot-like percentage = %.1f%% "%(botlike)) | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment