script/lib/iri_tweet/utils.py
changeset 464 b9243ade95e2
parent 411 0471e6eb8a1b
--- a/script/lib/iri_tweet/utils.py	Tue Dec 20 16:26:34 2011 +0100
+++ b/script/lib/iri_tweet/utils.py	Sat Jan 07 16:12:44 2012 +0100
@@ -10,6 +10,7 @@
 import logging
 import os.path
 import sys
+import math
 import twitter.oauth #@UnresolvedImport
 import twitter.oauth_dance #@UnresolvedImport
 import twitter_text #@UnresolvedImport
@@ -171,7 +172,7 @@
 
 class TwitterProcessor(object):
     
-    def __init__(self, json_dict, json_txt, source_id, session, access_token=None, token_filename=None):
+    def __init__(self, json_dict, json_txt, source_id, session, access_token=None, token_filename=None, user_query_twitter=False):
 
         if json_dict is None and json_txt is None:
             raise TwitterProcessorException("No json")
@@ -194,10 +195,11 @@
         self.token_filename = token_filename
         self.access_token = access_token
         self.obj_buffer = ObjectsBuffer()
+        self.user_query_twitter = user_query_twitter  
         
 
 
-    def __get_user(self, user_dict, do_merge, query_twitter = False):
+    def __get_user(self, user_dict, do_merge):
         get_logger().debug("Get user : " + repr(user_dict)) #@UndefinedVariable
         
         user_dict = adapt_fields(user_dict, fields_adapter["stream"]["user"])
@@ -243,7 +245,7 @@
     
         user_created_at = user_dict.get("created_at", None)
         
-        if user_created_at is None and query_twitter:
+        if user_created_at is None and self.user_query_twitter:
             
             if self.access_token is not None:
                 acess_token_key, access_token_secret = self.access_token
@@ -333,7 +335,7 @@
             return EntityHashtag, entity_dict             
         
         def process_user_mentions():
-            user_mention = self.__get_user(ind, False, False)
+            user_mention = self.__get_user(ind, False)
             if user_mention is None:
                 entity_dict['user_id'] = None
             else:
@@ -598,3 +600,17 @@
             raise
         except:
             self.handleError(record)
+
+def show_progress(current_line, total_line, label, width):
+
+    percent = (float(current_line) / float(total_line)) * 100.0
+
+    marks = math.floor(width * (percent / 100.0))
+    spaces = math.floor(width - marks)
+
+    loader = u'[' + (u'=' * int(marks)) + (u' ' * int(spaces)) + u']'
+    
+    sys.stdout.write(u"%s %d%% %d/%d - %r\r" % (loader, percent, current_line - 1, total_line - 1, label[:50].rjust(50))) #takes the header into account
+    if percent >= 100:
+        sys.stdout.write("\n")
+    sys.stdout.flush()