-
Notifications
You must be signed in to change notification settings - Fork 0
/
detailloop2.py
97 lines (87 loc) · 3.15 KB
/
detailloop2.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
import json
import os
import pprint
from mongoengine import connect
connect('chromestats', host='localhost', port=27017)
import multiprocessing
import time
from chromestats.stats_site.models import *
def worker(ext):
extension = ChromeAppIds.objects.get(guid=ext)
jsondata = os.popen("phantomjs details.js "+extension.guid)
data = json.load(jsondata)
plusdata = os.popen("phantomjs plusone.js "+extension.guid)
pluscount = plusdata.read().replace("\n","")
extensiondata, created = ChromeAppData.objects.get_or_create(
guid=extension.guid)
if created:
extensiondata.guid = extension.guid
extensiondata.name = data["name"]
extensiondata.icon = data["icon"]
extensiondata.rating = float(data["rating"])
extensiondata.category = data["category"]
extensiondata.current_usercount = int(data["usercount"].replace(",",""))
extensiondata.initial_usercount = int(data["usercount"].replace(",",""))
extensiondata.description = data["description"]
extensiondata.version = data["version"]
extensiondata.updated = data["updated"]
extensiondata.language = data["language"]
extensiondata.storeposition = int(extension.storeposition)
extensiondata.plusone = int(pluscount)
extensiondata.allwebsites = data["aw"]
extensiondata.save()
else:
extensiondata.current_usercount = int(data["usercount"].replace(",",""))
extensiondata.rating = float(data["rating"])
extensiondata.version = data["version"]
extensiondata.updated = data["updated"]
extensiondata.language = data["language"]
extensiondata.plusone = int(pluscount)
extensiondata.storeposition = int(extension.storeposition)
extensiondata.save()
datum = ChromeAppHistricData()
datum.guid = extension.guid
datum.usercount = int(data["usercount"].replace(",",""))
datum.plusone = int(pluscount)
datum.rating = float(data["rating"])
datum.storeposition = int(extension.storeposition)
datum.date = datetime.datetime.now()
datum.save()
print "processed " + extension.guid
def batch(arr):
jobs = []
for i in range(0,len(arr)):
p = multiprocessing.Process(args=(arr[i],), target=worker)
jobs.append(p)
p.start()
print "started job"
for i in range(0,len(arr)):
time.sleep(2.0)
for i in range(0,len(jobs)):
if (jobs[i].is_alive()):
print "killing job"
jobs[i].terminate();
jobs[i].join();
guids = []
for extension in ChromeAppIds.objects.all():
guids.append(extension.guid)
counter = 0
while (counter < len(guids)):
eb = []
if counter < len(guids):
eb.append(guids[counter])
counter=counter+1
if counter < len(guids):
eb.append(guids[counter])
counter=counter+1
if counter < len(guids):
eb.append(guids[counter])
counter=counter+1
if counter < len(guids):
eb.append(guids[counter])
counter=counter+1
if counter < len(guids):
eb.append(guids[counter])
counter=counter+1
batch(eb)
#print type(guids[counter])