Problem Statement:
- Extract the filename and read if filename has jQuery on it, put them aside.
- Second step will be to check one more and see if any jQuery files has
ui
in the filename.
Input:
script_ref1 = """<script type="text/javascript" src="js/jquery-1.9.1.min.js"/>
<script type="text/javascript" src="js/jquery-migrate-1.2.1.min.js"/>
<script type="text/javascript" src="js/jquery-ui.min.js"/>
<script type="text/javascript" src="js/abc_bsub.js"/>
<script type="text/javascript" src="js/abc_core.js"/>
<script type="text/javascript" src="js/abc_explore.js"/>
<script type="text/javascript" src="js/abc_qaa.js"/>"""
OR
script_ref2 = """<script type="text/javascript" src="js/jquery-1.9.1.min.js"/>
<script type="text/javascript" src="js/jquery-migrate-1.2.1.min.js"/>
<script type="text/javascript" src="js/abc_bsub.js"/>
<script type="text/javascript" src="js/abc_core.js"/>
<script type="text/javascript" src="js/abc_explore.js"/>
<script type="text/javascript" src="js/abc_qaa.js"/>"""
And:
div_attr_info = {"data-js":"jquery-1.8.1.min.js, jquery-ui-1.2.min.js, custom1.js, custom2.js"}
Output:
for script_ref1
doc_js: [' custom1.js', ' custom2.js']
for script_ref2
doc_js: [' jquery-ui-1.2.min.js', ' custom1.js', ' custom2.js']
Algorithm:
- Set
jquery_flag
andjquery_ui_flag
flag toFalse
. - Extracting specific src attributes from script tags.
- Iterate on step2 result.
- Set
jquery_flag
to True becausejquery
is substring in the file list. - Check
ui
is substring or not. and setjquery_ui_flag
according to it. - Get JS file list from the dictionary for comparison.
- Iterate and Do comparison.
- Print result.
Can the code be improved or optimized? Can I reduce the runtime?
jquery_flag = False
jquery_ui_flag = False
for ii in re.findall('src="js/([^"]*jquery[^"]*)"', script_ref):
jquery_flag = True
if "ui" in ii:
jquery_ui_flag = True
tmp = div_attr_info["data-js"].split(",")
doc_js = []
for ii in tmp:
if jquery_ui_flag and "jquery" in ii:
pass
elif jquery_flag and not jquery_ui_flag and "jquery" in ii and "ui" not in ii:
pass
else:
doc_js.append(ii)
print "doc_js:", doc_js