Skip to content

ავტომატური მაცნე btu classroom-ის ქულებისთვის.

Notifications You must be signed in to change notification settings

datotoda/btu-parser

Repository files navigation

Btu parser

პროექტის შესახებ

Btu parser არის პროექტი, რომლის საშუალებითაც მეილზე მიიღებთ შეტყობინებას ქულის შეცვლის შემთხვევაში btu classroom ზე. იგი აერთიანებს ოთხ სერვისს: საიტიდან ქულების წამოღება, ცვლილებების ანაზლიზი, მონაცემთა შენახვა ბაზაში და მეილზე შეტყობინების გაგზავნა.

პროგრამა ინახავს შეცვლილ ქულებს Firebase ის ბაზის history განყოფილებაში, ხოლო ლოგ ფაილებს log განყოფილებაში. main.py ფაილის გაშვებისას გაეშვება სერვერი რომლის /check ენდპოინტზეც მოხდება ქულების შემოწმება და ცვლილების შემთხვევაში მეილზე გაგზავნა, ხოლო / ენდპოინტზე დაბრუნდება უკანასკნელი 50 ლოგ ჩანაწერი.

Update 20.04.2023

დაემატა შეტყობინებების გაგზავნის ფუნქციონალი, /check ენდპოინტზე შესვლისას ქულებთან ერთად შემოწმდება შეტყობინებების რაოდენობა, თუ 0 ზე მეტი იქნება მაგ შემთხვევაში შევა შეტყობინებების მისამართზე და ნახავს ყველა შეტყობინებას, რომელიც იქნება ახალი იმას გამოაგზავნის მეილზე. მეილში იქნება დართული შეტყობინების ლინკიც რათა მარტივად მოხდეს კლასრუმის შეტყობინებაზე გადასვლა.

Update 04.06.2023

შეიცვალა სტრუქტურა, ფაილებში და ფოლდერებში შენახვის ნაცვლად ახლა ყველაფერი Firebase ს ბაზაში ინახება. ბაზის გასამართად გამოიყენეთ ეს ლინკი firebase docs, ასევე შეიცვალა .env ფაილის შიგთავსი.

cookie

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

ვირტუალური გარემოს გამართვა

windows

python -m venv .venv
.venv\Scripts\activate.bat
pip install -r requirements.txt

Unix / MacOS

$ 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

About

ავტომატური მაცნე btu classroom-ის ქულებისთვის.

Topics

Resources

Stars

Watchers

Forks