Bu, AI Tweet Bot'un Python Anywhere'de çalışacak şekilde optimize edilmiş Flask versiyonudur.
- Otomatik Makale Çekme: TechCrunch AI kategorisinden son haberleri çeker
- AI Tweet Oluşturma: Google Gemini 2.0 Flash ile akıllı tweet'ler oluşturur
- GitHub Repo Keşfi: Trend GitHub repolarını çeker ve tweet olarak paylaşır
- Otomatik Paylaşım: Twitter'a otomatik tweet paylaşımı
- Manuel Onay Sistemi: Tweet'leri paylaşmadan önce onaylama
- Telegram Bildirimleri: Yeni tweet'ler için bildirim
- Web Arayüzü: Modern ve kullanıcı dostu Flask arayüzü
- İstatistikler: Detaylı performans raporları
- Otomatik Kontrol: Belirli aralıklarla otomatik çalışma
- Python 3.8+
- Google Gemini API anahtarı
- Twitter API anahtarları
- Telegram Bot Token (opsiyonel)
# PythonAnywhere console'da
cd ~
git clone [your-repo-url] ai_tweet_bot_pythonanywhere
cd ai_tweet_bot_pythonanywhere# PythonAnywhere console'da
mkvirtualenv --python=/usr/bin/python3.10 ai_tweet_bot
workon ai_tweet_bot
pip install -r requirements.txtGelişmiş web scraping özellikleri için (opsiyonel):
# Opsiyonel kütüphaneleri kur
python install_optional.pyOpsiyonel Kütüphaneler:
- requests-html: JavaScript rendering desteği
- selenium: Browser automation (Chrome gerektirir)
- pyppeteer: Selenium alternatifi
Not: Bu kütüphaneler PythonAnywhere'de çalışmayabilir. Temel sistem bunlar olmadan da tam olarak çalışır.
.envdosyasını asla Git'e commit etmeyin- Güçlü ve benzersiz şifreler kullanın
- Production'da
DEBUG=Falseayarlayın - API anahtarlarınızı düzenli olarak yenileyin
PythonAnywhere Dashboard'da Files sekmesine git ve .env.example dosyasını .env olarak kopyalayıp düzenle:
# =============================================================================
# UYGULAMA GÜVENLİĞİ
# =============================================================================
SECRET_KEY=your-secret-key-here-change-this-to-strong-random-string
SIFRE=your-admin-password-here-change-this
DEBUG=False
FLASK_ENV=production
# =============================================================================
# GOOGLE GEMINI AI API
# =============================================================================
GOOGLE_API_KEY=your-google-gemini-api-key
# =============================================================================
# TWITTER API CREDENTIALS
# =============================================================================
TWITTER_BEARER_TOKEN=your-twitter-bearer-token
TWITTER_API_KEY=your-twitter-api-key
TWITTER_API_SECRET=your-twitter-api-secret
TWITTER_ACCESS_TOKEN=your-twitter-access-token
TWITTER_ACCESS_TOKEN_SECRET=your-twitter-access-token-secret
# =============================================================================
# GITHUB API (Opsiyonel - GitHub repoları için)
# =============================================================================
GITHUB_TOKEN=your-github-personal-access-token
# =============================================================================
# TELEGRAM BOT (Opsiyonel - Bildirimler için)
# =============================================================================
TELEGRAM_BOT_TOKEN=your-telegram-bot-token
# =============================================================================
# GMAIL SMTP (Opsiyonel - E-posta bildirimleri için)
# =============================================================================
GMAIL_EMAIL=your-email@gmail.com
GMAIL_APP_PASSWORD=your-gmail-app-password- Web sekmesine git
- Add a new web app tıkla
- Manual configuration seç
- Python 3.10 seç
- WSGI configuration file düzenle:
import sys
import os
# Proje dizinini ekle (kullanıcı adınızı değiştirin)
project_home = '/home/yourusername/ai_tweet_bot_pythonanywhere'
if project_home not in sys.path:
sys.path = [project_home] + sys.path
# Environment değişkenlerini yükle
from dotenv import load_dotenv
load_dotenv(os.path.join(project_home, '.env'))
# Flask uygulamasını import et
from app import app as application-
Virtual environment ayarla:
- Path:
/home/yourusername/.virtualenvs/ai_tweet_bot
- Path:
-
Static files ayarla:
- URL:
/static/ - Directory:
/home/yourusername/ai_tweet_bot_pythonanywhere/static/
- URL:
PythonAnywhere'de Tasks sekmesinde otomatik kontrol için:
# Her 2 saatte bir çalışacak task
cd /home/yourusername/ai_tweet_bot_pythonanywhere && python -c "
from app import check_and_post_articles
import os
os.environ.setdefault('FLASK_ENV', 'production')
result = check_and_post_articles()
print(f'Task completed: {result}')
"https://yourusername.pythonanywhere.comadresine git- Ayarlar sekmesinden konfigürasyonu yap
- Şimdi Kontrol Et ile manuel kontrol başlat
- Bekleyen Tweet'ler bölümünden onay ver
GET /- Ana sayfaGET /check_articles- Manuel makale kontrolüPOST /post_tweet- Tweet paylaşımıPOST /delete_tweet- Tweet silmeGET /settings- Ayarlar sayfasıPOST /save_settings- Ayarları kaydetGET /statistics- İstatistiklerGET /api/status- Health check
- Otomatik Mod: Otomatik makale kontrolü
- Kontrol Aralığı: Kaç saatte bir kontrol (1-24 saat)
- Maksimum Makale: Her kontrolde işlenecek makale sayısı
- Minimum Skor: Paylaşım için minimum etki skoru
- Otomatik Paylaşım: Onay beklemeden direkt paylaş
- Manuel Onay: Tweet'ler için onay gereksinimi
- Rate Limit: İşlemler arası bekleme süresi
- BotFather'dan bot oluştur
- Bot token'ı
.envdosyasına ekle - Bot'a mesaj gönder
- Chat ID Algıla butonuna tıkla
- Bağlantıyı Test Et ile kontrol et
GitHub modülü, trend olan açık kaynak projelerini keşfetmenizi ve bunları tweet olarak paylaşmanızı sağlar:
-
GitHub Token (Opsiyonel):
- GitHub Personal Access Token oluşturun
.envdosyasınaGITHUB_TOKENolarak ekleyin- Token olmadan da çalışır, ancak rate limit daha düşük olur
-
GitHub Repoları Sayfası:
/github_repossayfasına gidin- API Test ile bağlantıyı kontrol edin
- Repo Çek ile yeni repoları çekin
-
Repo Çekme Ayarları:
- Programlama Dili: Python, JavaScript, TypeScript, Go, Rust, Java vb.
- Zaman Aralığı: Günlük, haftalık veya aylık trend repolar
- Repo Sayısı: Çekilecek repo sayısı (1-20 arası)
-
Otomatik Tweet Oluşturma:
- Çekilen repolar otomatik olarak pending tweets'e eklenir
- Her repo için AI ile tweet metni oluşturulur
- Repo bilgileri (yıldız, fork, dil) tweet'e dahil edilir
-
GitHub İstatistikleri:
- Toplam paylaşılan repo sayısı
- Dil dağılımı
- Haftalık repo paylaşım istatistikleri
- Toplam makale sayısı
- Paylaşılan tweet sayısı
- Bekleyen tweet sayısı
- Ortalama etki skoru
- Günlük/haftalık istatistikler
- Kategori dağılımı
- Başarı oranı
-
Import Hatası:
# Virtual environment aktif mi kontrol et workon ai_tweet_bot which python -
Environment Değişkenleri:
# Console'da test et import os print(os.environ.get('GOOGLE_API_KEY'))
-
WSGI Hatası:
- Error log'ları kontrol et
- Path'leri doğrula
- Import'ları test et
-
API Bağlantı Sorunları:
- API anahtarlarını kontrol et
- Rate limit'leri kontrol et
- Network bağlantısını test et
# PythonAnywhere console'da
tail -f /var/log/yourusername.pythonanywhere.com.error.log
tail -f /var/log/yourusername.pythonanywhere.com.server.logUygulama, güvenlik açıklarını tespit etmek için otomatik kontroller yapar:
- Varsayılan Şifre Kontrolü: Zayıf şifreleri tespit eder
- Debug Modu Kontrolü: Production'da debug modunu kontrol eder
- API Anahtarı Kontrolü: Örnek değerleri tespit eder
- Secret Key Kontrolü: Güçlü secret key kullanımını kontrol eder
/security_check sayfasından güvenlik durumunuzu kontrol edebilirsiniz:
- ✅ Güvenlik durumu özeti
⚠️ Tespit edilen güvenlik sorunları- 💡 Güvenlik önerileri
- 🔧 Sistem yapılandırması
Uygulama, hassas bilgilerin loglanmasını önler:
- API anahtarları otomatik maskelenir
- Şifreler log'larda görünmez
- Debug modunda bile hassas veriler korunur
- Production'da minimal logging
-
Environment Variables:
.envdosyasını Git'e commit etmeyin.gitignoredosyasında.envolduğundan emin olun
-
Şifreler:
- Varsayılan şifreleri değiştirin
- Güçlü ve benzersiz şifreler kullanın
- Düzenli olarak şifreleri güncelleyin
-
API Anahtarları:
- API anahtarlarını düzenli olarak yenileyin
- Gereksiz izinleri kaldırın
- Rate limit'leri ayarlayın
-
Production Ayarları:
DEBUG=FalseayarlayınFLASK_ENV=productionkullanın- HTTPS kullanın
# PythonAnywhere console'da
cd ~/ai_tweet_bot_pythonanywhere
git pull origin main
workon ai_tweet_bot
pip install -r requirements.txt
# Web app'i restart et
# Dashboard > Web > Reload- Python Anywhere free hesaplarda günlük CPU sınırı var
- Scheduled tasks sadece paid hesaplarda mevcut
- HTTPS otomatik olarak sağlanır
- Static files için ayrı konfigürasyon gerekli
- Database kullanımı için ayrı setup gerekli
Sorun yaşarsanız:
- Error log'ları kontrol edin
- Environment değişkenlerini doğrulayın
- API anahtarlarını test edin
- Virtual environment'ı kontrol edin
Bu proje MIT lisansı altında lisanslanmıştır. # flask_tweet_app