1- from models import ScrapeRecord , Skin , Extension
1+ from models import ScrapeRecord , VersionRecord , Skin , Extension
22from utils import log_message
33import json
44import re
@@ -32,11 +32,12 @@ def get_siteinfo(url, args, session):
3232 return None
3333
3434
35- def create_version_records (components ):
35+ def create_version_records (session , last_sr_id , components ):
3636 skins = []
3737 skin_names = []
3838 extensions = []
3939 extension_names = []
40+
4041 for comp in components :
4142 if 'name' in comp and 'type' in comp :
4243 name = bytes (comp ['name' ], 'utf-8' )
@@ -67,13 +68,36 @@ def create_version_records(components):
6768 'url' : url
6869 })
6970 extension_names .append (name )
70- return {
71- 'skins' : skins ,
72- 'extensions' : extensions
73- }
71+
72+ version_record = VersionRecord ()
73+ session .add (version_record )
74+ session .commit ()
75+ vr_id = version_record .w8y_vr_vr_id
76+
77+ for skin in skins :
78+ session .add (
79+ Skin (
80+ w8y_sk_vr_id = vr_id ,
81+ w8y_sk_name = skin ['name' ],
82+ w8y_sk_version = skin ['version' ],
83+ w8y_sk_doc_url = skin ['url' ]
84+ )
85+ )
86+
87+ for extension in extensions :
88+ session .add (
89+ Extension (
90+ w8y_ex_vr_id = vr_id ,
91+ w8y_ex_name = extension ['name' ],
92+ w8y_ex_version = extension ['version' ],
93+ w8y_ex_doc_url = extension ['url' ]
94+ )
95+ )
96+
97+ return vr_id
7498
7599
76- def scrape_site (url , page_id , args , session ):
100+ def scrape_site (url , page_id , last_sr_id , args , session ):
77101 data = get_siteinfo (url , args , session )
78102 timestamp = time .time ()
79103
@@ -113,19 +137,16 @@ def scrape_site(url, page_id, args, session):
113137 statistics = query ['statistics' ]
114138
115139 if 'extensions' in query :
116- extensions = query ['extensions' ]
117- versions = create_version_records (extensions )
140+ vr_id = create_version_records (session , last_sr_id , query ['extensions' ])
118141 else :
119- versions = {
120- 'skins' : [],
121- 'extensions' : []
122- }
142+ vr_id = None
123143
124144 scrape = ScrapeRecord (
125145 w8y_sr_page_id = page_id ,
126146 w8y_sr_api_url = bytes (url , 'utf-8' ),
127147 w8y_sr_timestamp = timestamp ,
128148 w8y_sr_is_alive = True ,
149+ w8y_sr_vr_id = vr_id ,
129150 w8y_sr_mw_version = bytes (mw_version , 'utf-8' ),
130151 w8y_sr_db_version = bytes (db_version , 'utf-8' ),
131152 w8y_sr_php_version = bytes (php_version , 'utf-8' ),
@@ -138,24 +159,4 @@ def scrape_site(url, page_id, args, session):
138159 session .add (scrape )
139160 session .commit ()
140161 sr_id = scrape .w8y_sr_sr_id
141-
142- for skin in versions ['skins' ]:
143- session .add (
144- Skin (
145- w8y_sk_sr_id = sr_id ,
146- w8y_sk_name = skin ['name' ],
147- w8y_sk_version = skin ['version' ],
148- w8y_sk_doc_url = skin ['url' ]
149- )
150- )
151- for extension in versions ['extensions' ]:
152- session .add (
153- Extension (
154- w8y_ex_sr_id = sr_id ,
155- w8y_ex_name = extension ['name' ],
156- w8y_ex_version = extension ['version' ],
157- w8y_ex_doc_url = extension ['url' ]
158- )
159- )
160-
161162 return sr_id , False
0 commit comments