Update app.py
Browse files
app.py
CHANGED
@@ -29,11 +29,38 @@ st.set_page_config(layout="wide", page_title="محلل المواقع المتق
|
|
29 |
|
30 |
# تحميل الأنيميشن
|
31 |
def load_lottieurl(url):
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
36 |
|
|
|
37 |
lottie_analyzing = load_lottieurl("https://assets5.lottiefiles.com/packages/lf20_qpwbqki6.json")
|
38 |
|
39 |
# تصميم CSS مخصص
|
@@ -206,24 +233,25 @@ def main():
|
|
206 |
# عرض البطاقات الإحصائية
|
207 |
cols = st.columns(3)
|
208 |
with cols[0]:
|
209 |
-
st.metric("زمن التحميل", f"{performance_data
|
210 |
with cols[1]:
|
211 |
-
st.metric("حجم الصفحة", f"{performance_data
|
212 |
with cols[2]:
|
213 |
-
st.metric("الروابط الداخلية", seo_data
|
214 |
|
215 |
# عرض تحليل SEO
|
216 |
with st.expander("تحليل SEO", expanded=True):
|
217 |
st.json(seo_data)
|
218 |
|
219 |
# رسم بياني للعناوين
|
220 |
-
|
221 |
-
|
222 |
-
|
223 |
-
|
224 |
-
|
225 |
-
|
226 |
-
|
|
|
227 |
|
228 |
# عرض تحليل الأمان
|
229 |
with st.expander("تحليل الأمان", expanded=True):
|
@@ -246,5 +274,4 @@ def main():
|
|
246 |
# هنا يمكن إضافة إعدادات التحليل
|
247 |
|
248 |
if __name__ == "__main__":
|
249 |
-
main()
|
250 |
-
|
|
|
29 |
|
30 |
# تحميل الأنيميشن
|
31 |
def load_lottieurl(url):
|
32 |
+
try:
|
33 |
+
r = requests.get(url)
|
34 |
+
r.raise_for_status()
|
35 |
+
return r.json()
|
36 |
+
except Exception as e:
|
37 |
+
# Fallback to a basic loading animation JSON
|
38 |
+
return {
|
39 |
+
"v": "5.5.7",
|
40 |
+
"fr": 29.9700012207031,
|
41 |
+
"ip": 0,
|
42 |
+
"op": 180.00000733155,
|
43 |
+
"w": 500,
|
44 |
+
"h": 500,
|
45 |
+
"nm": "Loading",
|
46 |
+
"ddd": 0,
|
47 |
+
"assets": [],
|
48 |
+
"layers": [
|
49 |
+
{
|
50 |
+
"ddd": 0,
|
51 |
+
"ind": 1,
|
52 |
+
"ty": 4,
|
53 |
+
"nm": "Loading Circle",
|
54 |
+
"sr": 1,
|
55 |
+
"ks": {
|
56 |
+
"o": {"a": 0, "k": 100, "ix": 11},
|
57 |
+
"r": {"a": 1, "k": [{"i": {"x": [0.833], "y": [0.833]}, "o": {"x": [0.167], "y": [0.167]}, "t": 0, "s": [0], "e": [360]}, {"t": 180.00000733155}], "ix": 10}
|
58 |
+
}
|
59 |
+
}
|
60 |
+
]
|
61 |
+
}
|
62 |
|
63 |
+
# تحميل الأنيميشن الافتراضي
|
64 |
lottie_analyzing = load_lottieurl("https://assets5.lottiefiles.com/packages/lf20_qpwbqki6.json")
|
65 |
|
66 |
# تصميم CSS مخصص
|
|
|
233 |
# عرض البطاقات الإحصائية
|
234 |
cols = st.columns(3)
|
235 |
with cols[0]:
|
236 |
+
st.metric("زمن التحميل", f"{performance_data.get('load_time', 'N/A')}s")
|
237 |
with cols[1]:
|
238 |
+
st.metric("حجم الصفحة", f"{performance_data.get('page_size', 'N/A')} KB")
|
239 |
with cols[2]:
|
240 |
+
st.metric("الروابط الداخلية", seo_data.get('internal_links', 'N/A'))
|
241 |
|
242 |
# عرض تحليل SEO
|
243 |
with st.expander("تحليل SEO", expanded=True):
|
244 |
st.json(seo_data)
|
245 |
|
246 |
# رسم بياني للعناوين
|
247 |
+
if 'headings' in seo_data:
|
248 |
+
fig = px.bar(
|
249 |
+
x=list(seo_data['headings'].keys()),
|
250 |
+
y=list(seo_data['headings'].values()),
|
251 |
+
title="توزيع العناوين",
|
252 |
+
labels={'x': 'نوع العنوان', 'y': 'العدد'}
|
253 |
+
)
|
254 |
+
st.plotly_chart(fig)
|
255 |
|
256 |
# عرض تحليل الأمان
|
257 |
with st.expander("تحليل الأمان", expanded=True):
|
|
|
274 |
# هنا يمكن إضافة إعدادات التحليل
|
275 |
|
276 |
if __name__ == "__main__":
|
277 |
+
main()
|
|