···
link_categories = {"internal": [], "user": [], "unknown": []}
217
-
link_dict = {} # Dictionary with link URL as key, maps to atom ID
217
+
link_dict = {} # Dictionary with link URL as key, maps to list of atom IDs
reverse_dict = {} # Dictionary with atom ID as key, maps to list of URLs
···
category, target_username = categorizer.categorize_url(link_data.url, username)
268
-
# Add to link dictionary (URL as key, maps to atom ID only)
268
+
# Add to link dictionary (URL as key, maps to list of atom IDs)
if link_data.url not in link_dict:
270
-
link_dict[link_data.url] = link_data.entry_id
270
+
link_dict[link_data.url] = []
271
+
if link_data.entry_id not in link_dict[link_data.url]:
272
+
link_dict[link_data.url].append(link_data.entry_id)
# Also add to reverse mapping (atom ID -> list of URLs)
if link_data.entry_id not in reverse_dict:
reverse_dict[link_data.entry_id] = []
275
-
reverse_dict[link_data.entry_id].append(link_data.url)
277
+
if link_data.url not in reverse_dict[link_data.entry_id]:
278
+
reverse_dict[link_data.entry_id].append(link_data.url)
# Add category info to link data for categories tracking
link_info = link_data.to_dict()
···
# Try to match entry URLs with extracted links
if hasattr(entry, 'link') and entry.link:
316
-
registered_urls.add(entry.link)
319
+
registered_urls.add(str(entry.link))
# Also check entry alternate links if they exist
if hasattr(entry, 'links') and entry.links:
if hasattr(link, 'href') and link.href:
322
-
registered_urls.add(link.href)
325
+
registered_urls.add(str(link.href))
# Create filtered version for URL mapping (only links to registered posts)
filtered_reverse_dict = {}
328
-
for url, entry_id in link_dict.items():
331
+
for url, entry_ids in link_dict.items():
if url in registered_urls:
330
-
filtered_link_dict[url] = entry_id
333
+
filtered_link_dict[url] = entry_ids
# Also update reverse mapping
333
-
if entry_id not in filtered_reverse_dict:
334
-
filtered_reverse_dict[entry_id] = []
335
-
filtered_reverse_dict[entry_id].append(url)
336
+
for entry_id in entry_ids:
337
+
if entry_id not in filtered_reverse_dict:
338
+
filtered_reverse_dict[entry_id] = []
339
+
if url not in filtered_reverse_dict[entry_id]:
340
+
filtered_reverse_dict[entry_id].append(url)
# Use all links for main output, not filtered ones
346
+
console.print(f"Found {len(registered_urls)} registered post URLs")
console.print(f"Found {len(link_dict)} total links, {len(filtered_link_dict)} links to registered posts")
# Save links data (URL -> atom ID mapping, all links)