コード例 #1
0
class UserController:
    def __init__(self):
        self.users = []
        self.twitter_handler = TwitterHandler()

    def getUsersBySearchTerm(self, query):
        search_results = self.twitter_handler.search(query)
        users = list()
        for post in search_results:
            users.append(post._json["user"]["screen_name"])
        # print users
        return users

    def getUsersBySearchTermRules(self, query):

        search_results = self.twitter_handler.search(query)
        users = list()
        for post in search_results:
            text = post._json["text"].lower()
            text = re.sub("[^\\w\\s\\-\\<.*?>]", " ", text)
            tokens = text.split(" ")
            num_type_words = self.getNumberOfTypeWords(tokens)
            num_pronouns = self.getNumberOfPronouns(tokens)

            if num_type_words == 1 and num_pronouns > 0:
                users.append(post._json["user"]["screen_name"])
        # print users
        return users

    def getNumberOfTypeWords(self, tokens):
        keywords = [
            "enfj", "enfp", "entj", "entp", "esfj", "esfp", "estj", "estp",
            "infj", "infp", "intji", "ntp", "isfj", "isfp", "istj", "istp"
        ]
        count = 0
        for token in tokens:
            if token in keywords:
                count += 1
        return count

    def getNumberOfPronouns(self, tokens):
        keywords = ["i", "my", "did"]
        count = 0
        for token in tokens:
            if token in keywords:
                count += 1
        return count

    def getUser(self, screen_name):
        pass
コード例 #2
0
    def __init__(self, screen_name, mbti_type):
        self.screen_name = screen_name
        self.properties = {}
        self.tweets = {}
        self.twitter_handler = TwitterHandler()
        self.user_timeline = self.twitter_handler.getUserTimeline(screen_name)
        self.valid = self.user_timeline
        self.mbti_type = mbti_type

        for status in self.user_timeline:
            status = status._json
            if self.properties == {}:
                self.setProperties(status["user"])
            status.pop("user")
            self.tweets[status["id"]] = status
コード例 #3
0
class App():
    def __init__(self):
        self.db = Database()
        self.th = TwitterHandler()

    def main(self):
        tweets = self.th.home()
        [self.persist_tweet(tweet) for tweet in tweets]
        [print(tweet) for tweet in self.db.get_tweets()]

    def persist_tweet(self, tweet):
        self.db.insert_tweet(Tweet(tweet['id'], tweet['text']))
コード例 #4
0
ファイル: Bot.py プロジェクト: NaturaAurum/NaturaAurumBot
 def set_mode(self, mode):
     self.mode = mode
     if mode == 0:
         self.handler = TorrentHandler(self.config)
     elif mode == 1:
         self.handler = TwitterHandler(self.config)
     elif mode == 2:
         self.handler = WeatherHandler(self.config)
     elif mode == 3:
         self.handler = TranslateHandler(self.config)
     elif mode == 4:
         self.handler = GiphyHandler(self.config)
     else:
         self.handler = HandlerBase(self.config)
コード例 #5
0
ファイル: User.py プロジェクト: sjhddh/twitter-mbti
class User:
    def __init__(self, screen_name, mbti_type):
        self.screen_name = screen_name
        self.properties = {}
        self.tweets = {}
        self.twitter_handler = TwitterHandler()
        self.user_timeline = self.twitter_handler.getUserTimeline(screen_name)
        self.mbti_type = mbti_type

        for status in self.user_timeline:
            status = status._json
            if self.properties == {}:
                self.setProperties(status["user"])
            status.pop("user")
            self.tweets[status["id"]] = status

        self.writeFile()

    def getUserAsJson(self):
        return {
            "user": self.properties,
            "tweets": self.tweets,
            "mbti type": self.mbti_type
        }

    def readTweets(self, timeline):
        results = {}
        for status in timeline:
            status = status._json
            status.pop("user")
            # print status
            results[status["id"]] = status

        return results

    def setProperties(self, user):
        # print user
        # if user["screen_name"] == self.screen_name[1:]:
        self.properties = user

    def writeFile(self):
        file_name = "data/" + self.mbti_type + "_" + self.screen_name[
            1:] + ".json"
        file = open(file_name, "w")
        file.write("")

        file = open(file_name, "a")
        json.dump(self.getUserAsJson(), file, indent=2)
コード例 #6
0
    "name": "nosql1",
    "teste": "1"
}, {
    "_id": 2,
    "name": "nosql2",
    "teste": "2"
}]
ids = mongoDbConnection.insertMany(insertMany)
print("insertMany: _ids=" + str(ids) + " inserted")

for idToDelete in ids:
    deleteOne = {"_id": idToDelete}
    mongoDbConnection.deleteOne(deleteOne)
print("deleteMany: " + str(ids) + " deleted")

twitter = TwitterHandler(consumerKey, consumerSecret, accessToken,
                         accessTokenSecret)
query = 'BigDataAnalytics'
twitters = twitter.search(query)
for tweet in twitters:
    #print(f' User: {tweet.user} - Tweet: {tweet.text}')
    locationFromTweet = tweet._json['user']['location']
    if locationFromTweet.strip():
        print("Location: " + tweet._json['user']['location'])
        tweetUser = tweet._json['user']
        tweetInsertion = {
            "idUser": tweetUser['id'],
            "name": tweetUser['name'],
            "screenName": tweetUser['screen_name'],
            "location": tweetUser['location'],
            "tweet": tweetUser['description']
        }
コード例 #7
0
 def __init__(self):
     self.users = []
     self.twitter_handler = TwitterHandler()
コード例 #8
0
class UserController:
    def __init__(self):
        self.users = []
        self.twitter_handler = TwitterHandler()

    def getUsersBySearchTerm(self, query):
        search_results = self.twitter_handler.search(query)
        users = list()
        for post in search_results:
            users.append(post._json["user"]["screen_name"])
        # print users
        return users

    def getFollowers(self, name):
        users = []
        follower_ids = self.twitter_handler.getFollowers(name)
        print len(follower_ids)
        i = 0
        for id in follower_ids:
            name = self.twitter_handler.api.get_user(id).screen_name
            print name
            users.append(name)
            if i < loaded_followers:
                i += 1
            else:
                break
        return users

    def getUsersBySearchTermRules(self, query):
        search_results = self.twitter_handler.search(query)
        users = list()
        for post in search_results:
            text = post._json["text"].lower()
            text = re.sub("[^\\w\\s\\-\\<.*?>]", " ", text)
            tokens = text.split(" ")
            num_type_words = self.getNumberOfTypeWords(tokens)
            num_pronouns = self.getNumberOfPronouns(tokens)

            if num_type_words == 1 and num_pronouns > 0:
                users.append(post._json["user"]["screen_name"])
        return users

    def getNumberOfTypeWords(self, tokens):
        keywords = [
            "enfj", "enfp", "entj", "entp", "esfj", "esfp", "estj", "estp",
            "infj", "infp", "intji", "ntp", "isfj", "isfp", "istj", "istp"
        ]
        count = 0
        for token in tokens:
            if token in keywords:
                count += 1
        return count

    def getNumberOfPronouns(self, tokens):
        keywords = ["i", "my", "did"]
        count = 0
        for token in tokens:
            if token in keywords:
                count += 1
        return count

    def getUser(self, screen_name):
        pass

    def getFiles(filepath):
        files = list()
        for f in os.walk(filepath):
            for file in f[2]:
                if (file.endswith(".json")):
                    fn = filepath + file
                    json_file = json.load(fn.read)
                    files.append(fn.read())
        return files

    def getJsonDocuments(path):
        json_files = list()
        # files = getFiles(path)
        # for file in files:
        #   with open(file) as json_file:
        #     jsonfile = json.loads(json_file.read())
        #     json_files.append(jsonfile)
        return json_files
コード例 #9
0
 def __init__(self):
     self.db = Database()
     self.th = TwitterHandler()