17 Commits

Author SHA1 Message Date
cd27cc8ad9 Major refactor: Fix SQLite concurrency, remove rate limiting, simplify architecture
- Switch to single Gunicorn worker to eliminate SQLite database locking issues
- Remove Flask-Limiter and all rate limiting complexity
- Remove Cloudflare proxy setup and dependencies
- Simplify configuration and remove unnecessary features
- Update all templates and static files for streamlined operation
- Clean up old files and documentation
- Restore stable database from backup
- System now runs fast and reliably without database locks
2025-09-21 19:45:08 +01:00
b08b81fec9 Fix quote submission bug and update copyright notice
- Fixed config access in submit route (config.min_quote_length -> config.get('quotes.min_length'))
- Fixed Flask-Limiter initialization syntax
- Reduced minimum quote length from 10 to 1 character
- Updated copyright notice from '© ircquotes 2024, All Rights Reserved.' to '@ ircquotes 2024-2025'
- Quote submission now works properly with correct status assignment (pending/approved)
- Quotes are properly created with status=0 (pending) when auto_approve=false
2025-09-20 20:44:30 +01:00
3dbb181cb0 Add Cloudflare/nginx proxy support and production setup
- Updated ProxyFix configuration for Cloudflare + nginx
- Added custom IP detection for real client IPs
- Updated rate limiting to use real IPs
- Added nginx configuration example
- Added Cloudflare setup guide
- Added production server setup script
2025-09-20 20:07:28 +01:00
f409977257 Complete ircquotes application with all features
- Added copy quote functionality with clipboard integration
- Implemented bulk moderation actions for admin
- Created mobile responsive design with bash.org styling
- Added API rate limiting per IP address
- Implemented dark mode toggle with flash prevention
- Enhanced error messages throughout application
- Fixed all security vulnerabilities (SQL injection, XSS, CSRF)
- Added comprehensive rate limiting on all endpoints
- Implemented secure session configuration
- Added input validation and length limits
- Created centralized configuration system with config.json
- Set up production deployment with Gunicorn
- Added security headers and production hardening
- Added password generation and config management tools
2025-09-20 19:41:23 +01:00
Julian Marcos
875fd9a6b2 app: Have secret key in instance/ 2024-10-14 16:18:35 +02:00
Julian Marcos
63a9144c7f flask: Use secret key in file 2024-10-14 16:10:24 +02:00
9f4d380950 Fixed some things 2024-10-14 00:25:06 +01:00
35c90e0210 Improved several things, especially /modapp 2024-10-13 21:27:31 +01:00
1c4079f5b5 Fixed voting bug 2024-10-11 21:23:25 +01:00
a69c6d2b06 stuff idk 2024-10-11 19:57:20 +01:00
b8edf8a7f1 Improved modapp 2024-10-11 19:36:58 +01:00
79ed713a18 Improved bulk action handling in modapp
- Added helper functions for approving, rejecting, and deleting quotes (approve_quote, reject_quote, delete_quote)
- Implemented validation for quote selection and action type
- Added user feedback (flash messages) for successful or invalid actions
- Ensured no action is performed if no quotes are selected in bulk operations
2024-10-11 18:49:10 +01:00
9274bda6ff Added search.html which was missing. 2024-10-11 16:05:25 +01:00
a312cbcf22 Random page now only displays approved quotes 2024-10-11 15:42:14 +01:00
d4781a180e Added the option to set the bind address and port. 2024-10-11 15:16:18 +01:00
Julian Marcos
8e93f695bf quoteid direct homepath: /?1 should now work 2024-10-11 15:51:25 +02:00
6c346d386b Create app.py 2024-10-09 21:13:22 +01:00