Allow users to edit the Flickr search query without changing the
Wikipedia article. Shows a text field with the current search term
(including quotes for phrase search) that can be modified and
re-submitted. The search term persists across pagination and photo
selection.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Large categories like "Living people" (900k+ articles) were impractical
because the code tried to download all members before displaying results.
Now stops after collecting ~200 articles and provides a "Next page" link.
Also fixes the MediaWiki API continuation protocol: passes the full
continue dict (not just gcmcontinue) so imcontinue responses are handled
properly, and reduces gcmlimit from "max" to 50 so each batch's images
fit in one API response.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Log searches (article/category) and message-generation events to a new
interaction_log table, capturing IP address and User-Agent.
Also apply NOT NULL constraints to Contribution, SentMessage, FlickrUpload,
and ThumbnailCache fields that are always populated, and remove stale
continue_token references from category.html.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Move from JSON file storage to SQLite database using SQLAlchemy with
Mapped type hints. Deduplicate URL utility functions into shared
flickr_mail package.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add /category route to find Wikipedia articles without images in a
category using the MediaWiki API. Filter out non-content images (UI
icons, logos) when checking articles.
Show image license on message page with alternate message for non-free
CC licenses (NC/ND) explaining Wikipedia's restrictions. For photos
with free licenses, show upload options linking to UploadWizard instead
of a message form.
Add Flickr CC 4.0 license codes, user profile links, previous message
detection from sent mail index, and back-navigation between category,
search results, and message pages.
Closes#3
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Show the total number of successful Flickr mail requests on the home
page, not just the count of recent uploads displayed.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Display recent Wikimedia Commons uploads on the home page, filtered to
only show images that were obtained by contacting creators via Flickr
mail. Each upload shows:
- Thumbnail linking to Commons
- Creator name linking to their Flickr profile
- Link to the illustrated Wikipedia article (or Wikidata item)
Features:
- Parse sent mail messages to extract Flickr and Wikipedia URLs
- Match Commons uploads with sent mail by normalized Flickr URL
- Cache Commons API thumbnail responses and sent mail index
- Handle Wikidata item URLs (Q-numbers) with correct links
- Add update_flickr_uploads.py script to find uploads from UploadWizard
contributions by checking Commons API metadata
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add SearchResult dataclass with pagination metadata
- Update search_flickr() to accept page parameter
- Parse total results count from Flickr response
- Add Bootstrap pagination controls to template
- Display total result count in UI
- Update documentation
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Instead of showing a link to search Flickr, the app now performs the
search directly and displays results as a grid of thumbnails. Each photo
shows the photographer's name and license (with Wikipedia-compatible
licenses highlighted in green). Clicking a photo takes the user to the
message composition page with the selected image displayed alongside.
Includes validation to ensure image URLs are from Flickr's static servers.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>