Btu parser არის პროექტი, რომლის საშუალებითაც მეილზე მიიღებთ შეტყობინებას ქულის შეცვლის შემთხვევაში btu classroom ზე. იგი აერთიანებს ოთხ სერვისს: საიტიდან ქულების წამოღება, ცვლილებების ანაზლიზი, მონაცემთა შენახვა ბაზაში და მეილზე შეტყობინების გაგზავნა.
პროგრამა ინახავს შეცვლილ ქულებს Firebase ის ბაზის history
განყოფილებაში, ხოლო ლოგ ფაილებს log
განყოფილებაში.
main.py
ფაილის გაშვებისას გაეშვება სერვერი რომლის /check
ენდპოინტზეც მოხდება ქულების შემოწმება და ცვლილების შემთხვევაში
მეილზე გაგზავნა, ხოლო /
ენდპოინტზე დაბრუნდება უკანასკნელი 50 ლოგ ჩანაწერი.
დაემატა შეტყობინებების გაგზავნის ფუნქციონალი, /check
ენდპოინტზე შესვლისას ქულებთან ერთად შემოწმდება შეტყობინებების რაოდენობა, თუ 0 ზე მეტი იქნება მაგ შემთხვევაში შევა შეტყობინებების მისამართზე და ნახავს ყველა შეტყობინებას, რომელიც იქნება ახალი იმას გამოაგზავნის მეილზე. მეილში იქნება დართული შეტყობინების ლინკიც რათა მარტივად მოხდეს კლასრუმის შეტყობინებაზე გადასვლა.
შეიცვალა სტრუქტურა, ფაილებში და ფოლდერებში შენახვის ნაცვლად ახლა ყველაფერი Firebase ს ბაზაში ინახება. ბაზის გასამართად გამოიყენეთ ეს ლინკი firebase docs, ასევე შეიცვალა .env ფაილის შიგთავსი.
cookie-ს მისაღებად შედით btu classroom ზე, გახსენით developer tools-ის (F12)
Network ტაბი, დაარეფრეშეთ გვერდი, გახსენით პირველივე რექვესთი სახელად courses
, Request Headers ის განყოფილებაში
მოძებნეთ cookie, დააკოპირეთ მნიშვნელობა და ჩასვით .env
ფაილში cookie
-ის მნიშვნელობად.
- დროთა განმავლობაში cookie-ს შეიძლება ვადა გაუვიდეს, ამიტომ მოგიწევთ .env ფაილში cookie-ის განახლება.
- გამგზაავნის პაროლისთვის გამოიყენეთ App Password.
იმისათვის რომ პროგრამამ ავტომატურად გამოგიგზავნოთ შეტყობინებები, ამისათვის საჭიროა ეს პროექტი ატვირთოთ სერვერზე და
თქვენთვის სასურველი დაყოვნებებით გააგზავნოთ რექვესთები {სერვერის_მისამართი}/check
-ზე.
- Flask
- Requests
- Beautiful soup 4
- Jinja2
- Smtplib
- Firebase admin
python -m venv .venv
.venv\Scripts\activate.bat
pip install -r requirements.txt
$ python3 -m venv .venv
$ source .venv/bin/activate
$ pip3 install -r requirements.txt
სანამ კოდს გაუშვებთ დარწმუნდით უნდა შექმნათ .env
ფაილი
და მასში ჩაწეროთ რამდენიმე მნიშვნელოვანი ცვლადი.
# გამგზავნის ფოსტის მისამართი
sender_email=""
# გამგზავნის ფოსტის პაროლი
password=""
# მიმღების ფოსტის მისამართი
receiver_email=""
# btu classroom ის cookie
cookie=""
# Flask secret key
flask_key=""
# Firebase credentials
project_id=""
private_key_id=""
private_key=""
client_email=""
client_id=""
client_x509_cert_url=""
databaseURL=""
$ python main.py