Spaces:
Runtime error
Runtime error
| from flask import Flask, render_template, request, redirect, url_for, flash, send_from_directory | |
| import os | |
| from werkzeug.utils import secure_filename | |
| from instagrapi import Client | |
| from PIL import Image | |
| import time | |
| app = Flask(__name__) | |
| app.config['SECRET_KEY'] = 'your-secret-key' | |
| app.config['UPLOAD_FOLDER'] = 'uploads' | |
| app.config['MAX_CONTENT_LENGTH'] = 16 * 1024 * 1024 # 16MB max file size | |
| # Ensure upload folder exists | |
| os.makedirs(app.config['UPLOAD_FOLDER'], exist_ok=True) | |
| # Instagram credentials (replace with your own) | |
| INSTAGRAM_USERNAME = "degavallisatishchander98@gmail.com" | |
| INSTAGRAM_PASSWORD = "degavalli98" | |
| # Initialize instagrapi client | |
| cl = Client() | |
| cl.login(INSTAGRAM_USERNAME, INSTAGRAM_PASSWORD) | |
| def index(): | |
| return render_template('index.html') | |
| def upload_image(): | |
| if 'image' not in request.files: | |
| flash('No file part') | |
| return redirect(url_for('index')) | |
| file = request.files['image'] | |
| if file.filename == '': | |
| flash('No file selected') | |
| return redirect(url_for('index')) | |
| if file: | |
| filename = secure_filename(f"captured_{int(time.time())}.jpg") | |
| filepath = os.path.join(app.config['UPLOAD_FOLDER'], filename) | |
| file.save(filepath) | |
| # Convert to JPEG if needed (Instagram requires JPEG) | |
| img = Image.open(filepath) | |
| if img.format != 'JPEG': | |
| img = img.convert('RGB') | |
| img.save(filepath, 'JPEG') | |
| try: | |
| # Upload to Instagram | |
| cl.photo_upload( | |
| path=filepath, | |
| caption="Uploaded from Flask Camera App" | |
| ) | |
| flash('Image uploaded to Instagram successfully!') | |
| except Exception as e: | |
| flash(f'Error uploading to Instagram: {str(e)}') | |
| # Clean up | |
| os.remove(filepath) | |
| return redirect(url_for('index')) | |
| def uploaded_file(filename): | |
| return send_from_directory(app.config['UPLOAD_FOLDER'], filename) | |
| if __name__ == '__main__': | |
| app.run(debug=True, host='0.0.0.0') |