Spaces:
Running
Running
Update app.py
Browse files
app.py
CHANGED
@@ -135,10 +135,20 @@ def check_plagiarism(text, topic):
|
|
135 |
return hits
|
136 |
|
137 |
def generate_apa_citation(title, url, source, year=None):
|
138 |
-
|
139 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
140 |
return f"{title}. ({year}). {label}. {url}"
|
141 |
|
|
|
142 |
def merge_duplicates(entries):
|
143 |
unique = []
|
144 |
seen_titles = []
|
@@ -264,7 +274,7 @@ if research_button and topic:
|
|
264 |
st.info("ℹ️ No image previews available.")
|
265 |
|
266 |
# 🔹 Generate report
|
267 |
-
citations = [generate_apa_citation(m
|
268 |
combined_text = "\n\n".join([
|
269 |
f"- [{m['title']}]({m['url']}) ({m.get('year', 'n.d.')})\n> {m.get('snippet', m.get('summary', ''))[:300]}..."
|
270 |
for m in merged
|
|
|
135 |
return hits
|
136 |
|
137 |
def generate_apa_citation(title, url, source, year=None):
|
138 |
+
title = title or "Untitled Source"
|
139 |
+
url = url or "Unavailable URL"
|
140 |
+
year = year if isinstance(year, int) and 1900 <= year <= datetime.datetime.now().year else "n.d."
|
141 |
+
|
142 |
+
source_map = {
|
143 |
+
"arxiv": "*arXiv*",
|
144 |
+
"semantic": "*Semantic Scholar*",
|
145 |
+
"web": "*Web Source*"
|
146 |
+
}
|
147 |
+
label = source_map.get(source, "*External Source*")
|
148 |
+
|
149 |
return f"{title}. ({year}). {label}. {url}"
|
150 |
|
151 |
+
|
152 |
def merge_duplicates(entries):
|
153 |
unique = []
|
154 |
seen_titles = []
|
|
|
274 |
st.info("ℹ️ No image previews available.")
|
275 |
|
276 |
# 🔹 Generate report
|
277 |
+
citations = [generate_apa_citation(m.get('title'), m.get('url'), m.get('source'), m.get('year')) for m in merged]
|
278 |
combined_text = "\n\n".join([
|
279 |
f"- [{m['title']}]({m['url']}) ({m.get('year', 'n.d.')})\n> {m.get('snippet', m.get('summary', ''))[:300]}..."
|
280 |
for m in merged
|