Files
ClassFeedback/.claude/memory/temp/verify_final_csp.py

25 lines
1.3 KiB
Python

# -*- coding: utf-8 -*-
import io, re, sys
for f in sys.argv[1:]:
c = io.open(f, encoding='utf-8').read()
print('===', f.replace('\\', '/').split('/')[-1])
print(' oj-explains:', c.count('class="oj-explains"'),
'| prob-detail:', c.count('class="prob-detail"'),
'| prob-sec-h:', c.count('class="prob-sec-h"'))
print(' ★star leftover:', c.count('star-rating'), c.count('class="star '),
'| backdrop-filter:', c.count('backdrop-filter'))
print(' student-card display:none:', '.student-card { display: none; }' in c,
'| active block:', '.student-card.active { display: block; position: relative; pointer-events: auto; }' in c)
opens = c.count('<div'); closes = c.count('</div>')
print(' div balance:', opens, '/', closes, 'OK' if opens == closes else 'MISMATCH')
mjs = re.search(r'<script[^>]*>(.*)</script>', c, re.S)
js = mjs.group(1)
print(' js braces:', js.count('{'), '/', js.count('}'),
'parens:', js.count('('), '/', js.count(')'))
print(' toggleProb present:', 'function toggleProb' in c)
# which student owns first panel
m = re.search(r'data-oj-section="([^"]+)">', c)
first_stu = m.group(1) if m else '?'
idx = c.find(first_stu)
print(' first student:', first_stu)