Пример #1
0
    def lessonDelete(self):
        lesson_link = self.__web.wait(
            EC.element_to_be_clickable((
                By.XPATH,
                '//*[@id="app"]/div/div/div/div[4]/div/div[1]/div[2]/div/div/div/div[1]/div/div[2]/div[1]/div[2]/a'
            )), 1)

        if lesson_link == False:
            return False

        hour = self.__web.wait(
            EC.visibility_of_element_located((
                By.XPATH,
                '//*[@id="app"]/div/div/div/div[4]/div/div[1]/div[2]/div/div/div/div[1]/div/div[2]/div[1]/div[1]/div/span'
            ))).text
        lesson = lesson_link.text

        time.sleep(float(web_wait) / 6)
        lesson_link.click()
        date = self.__web.element(
            "//*[@id=\"info_form\"]/div[2]/div/div/div[1]").text.split(",")[0]
        self.__web.wait(
            EC.element_to_be_clickable((By.ID, 'btn_Delete_meeting')),
            1).click()
        time.sleep(float(web_wait) / 6)
        self.__web.wait(
            EC.element_to_be_clickable((By.ID, 'submitDeleteEndBtn')),
            1).click()

        log.write("Ders silindi: {} ({}, {})".format(lesson, date, hour))
Пример #2
0
    def setAutoRecordSettingOn(self):
        self.getSettingRecording()
        self.__web.element(
            "//div[@id=\"feature-localrecording\"]//label[@class=\"zm-switch\"]"
        ).click()
        # time.sleep(0.2)
        # self.__web.element("//*[contains(text(), 'Turn On')]").click()
        # time.sleep(0.2)

        self.__web.wait(
            EC.element_to_be_clickable(
                (By.XPATH, "//*[contains(text(), 'Turn On')]")), 1).click()
        self.__web.wait(
            EC.presence_of_element_located(
                (By.XPATH, "//*[contains(text(), 'Turn On')]")), 2, True)
        self.__web.wait(
            EC.visibility_of_element_located(
                (By.XPATH,
                 '//*[contains(text(), "Your settings have been updated.")]')))
        time.sleep(3)
        self.__web.element(
            "//div[@id=\"feature-autorecording\"]//label[@class=\"zm-switch\"]"
        ).click()
        self.__web.wait(
            EC.visibility_of_element_located(
                (By.XPATH,
                 '//*[contains(text(), "Your settings have been updated.")]')))
        log.write("Zoom'da Auto Record ayarı açıldı.", "header")
Пример #3
0
    def login(self, user):
        self.__driver.execute_script(
            "window.open('https://giris.eba.gov.tr/EBA_GIRIS/teacher.jsp');")
        self.__web.switchTab(-1)
        edevlet_btn = self.__web.wait(
            EC.element_to_be_clickable(
                (By.XPATH, '//*/button[@title="edevlet girişi"]')), 1)

        if edevlet_btn == False:
            return
        edevlet_btn.click()

        self.__web.element("//*/input[@id=\"tridField\"]").send_keys(
            user['edevlet_tc'])
        self.__web.element("//*/input[@id=\"egpField\"]").send_keys(
            user['edevlet_password'])

        if user['edevlet_tc'] == "" or user['edevlet_password'] == "":
            self.waitForSignIn(user)
        elif user_sign:
            self.waitForSignIn(user)
        else:
            self.__web.element("//*/input[@name=\"submitButton\"]").click()
            time.sleep(2)
            if self.__web.get(
            ).current_url == 'https://giris.eba.gov.tr/EBA_GIRIS/hata.jsp':
                log.write('Hata sayfasına gitti. Tekrar giriş yapılacak.')
                self.login(user)
        self.__web.wait(EC.element_to_be_clickable((By.ID, 'vc-treeleftmenu')))
        log.write("<green>EBA'ya giriş yapıldı.</>", "header")
Пример #4
0
 def setRequestUnmuteSettingOn(self):
     self.getSettingMeeting()
     self.__web.element(
         "//div[@id=\"feature-requestPermission2Unmute\"]//label[@class=\"zm-switch\"]"
     ).click()
     self.__web.wait(
         EC.visibility_of_element_located(
             (By.XPATH,
              '//*[contains(text(), "Your settings have been updated.")]')))
     log.write("Zoom'da Request Unmute ayarı açıldı.", "header")
Пример #5
0
    def lessonDelete(self):
        lesson_btn_group = self.__web.wait(
            EC.element_to_be_clickable((
                By.XPATH,
                '//*[@id="liveLessonList"]/div[2]/div/div[3]/div/div[3]/div[1]/div[2]/div[1]/div/div[7]'
            )), 1)

        if lesson_btn_group == False:
            return False

        date_element = self.__web.wait(
            EC.visibility_of_element_located((
                By.XPATH,
                '//*[@id="liveLessonList"]/div[2]/div/div[3]/div/div[3]/div[1]/div[2]/div[1]/div/div[5]/div/div[1]/div'
            )), 1)
        date = date_element.text.replace("\n", ", ")
        lesson = self.__web.wait(
            EC.visibility_of_element_located((
                By.XPATH,
                '//*[@id="liveLessonList"]/div[2]/div/div[3]/div/div[3]/div[1]/div[2]/div[1]/div/div[1]/div/div[1]/div'
            )), 1).text

        lesson_btn_group.click()
        delete_btn = self.__web.wait(
            EC.element_to_be_clickable(
                (By.XPATH, '//*/a[contains(text(), "Sil")]')), 1)

        if delete_btn == False:
            log.write(
                "Ders çok yakın, silinemedi: {} ({})".format(lesson, date),
                "error")
            return

        delete_btn.click()
        self.__web.wait(
            EC.element_to_be_clickable(
                (By.XPATH, '//*/a[contains(text(), "EVET")]')), 1).click()

        self.__web.wait(
            EC.visibility_of_element_located((
                By.XPATH,
                '//*/div[contains(text(), "Canlı ders başarı ile silindi")]')))
        dates = date_element.text.split("\n")
        self.__web.wait(
            EC.presence_of_element_located(
                (By.XPATH,
                 "//*/div[contains(text(),'{}') and contains(.,'{}')]".format(
                     dates[0], dates[1]))), 300, True)
        self.__web.wait(
            EC.presence_of_element_located((
                By.XPATH,
                '//*/div[contains(text(), "Canlı ders başarı ile silindi")]')),
            300, True)

        log.write("Ders silindi: {} ({})".format(lesson, date))
Пример #6
0
    def lessonsDelete(self):
        self.__web.switchTab(0)
        self.getUpcomingMeetings()

        log.write("Zoom'da dersleri silme işlemi başlıyor.", "header")

        while True:
            if self.lessonDelete() == False:
                break

        log.write(
            "Zoom'da dersleri silme işlemi başarılı bir şekilde tamamlandı.",
            "header")
Пример #7
0
    def lessonsDelete(self):
        self.__web.switchTab(1)
        self.getExternalLessons()

        log.write("EBA'da dersleri silme işlemi başlıyor.", "header")

        while True:
            if self.lessonDelete() == False:
                break

        log.write(
            "EBA'da dersleri silme işlemi başarılı bir şekilde tamamlandı.",
            "header")
Пример #8
0
    def getSelection(self):
        # Eğer Kullanıcı sayısı 0 ise dur
        if len(self._rows) == 0:
            log.write("Kullanıcı olmadığı için program durduruldu.", "error")
            exit()

        # Kullanıcı seçimi yaptır
        users_data = self._rows
        if self.opt_user == False:
            user_ids = self.ids()
            selection_list = ["Tüm Kullanıcılar"] + self.get('name')
            selection = SelectionMenu.get_selection(selection_list, title="EBABOT - HARİCİ CANLI DERS", subtitle="Lütfen işlem yapılacak kullanıcı seçimi yapın.", show_exit_option=False)
            if selection != 0:
                users_data = [self.find(user_ids[selection-1])]

        log.write("{} kullanıcı alındı.".format(len(users_data)), "header")

        return users_data
Пример #9
0
    def __init__(self, user):
        super(Browser, self).__init__()
        self.options = webdriver.ChromeOptions()
        self.options.add_experimental_option("excludeSwitches",
                                             ["enable-logging"])
        self.options.headless = web_headless
        self.options.add_argument("user-data-dir={}\\{}".format(
            web_profile, user['name']))
        self.__web = webdriver.Chrome(chromedriver_path, options=self.options)
        self.__web.implicitly_wait(web_implicitly_wait)

        if web_size == "max":
            self.__web.maximize_window()
        else:
            self.__web.set_window_size(web_size[0], web_size[1])

        log.write("Tarayıcı varsayılan ayarlarda açıldı.", "header")
        log.write("<blue>Gizli mi?:</> {}".format(
            "Evet" if web_headless else "Hayır"))
Пример #10
0
    def lessonSave(self, lesson, xl):
        self.__web.switchTab(0)
        self.getSchedule()

        isRepeat = False
        reqUnResult = self.requestUnmute(lesson)
        auRecResult = self.autoRecord(lesson)
        if reqUnResult == "repeat":
            isRepeat = True
            self.setRequestUnmuteSettingOn()
        if auRecResult == "repeat":
            isRepeat = True
            self.setAutoRecordSettingOn()
        if isRepeat == True:
            self.lessonSave(lesson, xl)
            return

        self.lessonMeta(lesson)
        self.lessonDate(lesson, xl)
        self.lessonHour(lesson, xl)
        # time.sleep(0.5)
        self.lessonTime(lesson)
        self.meetingID(lesson)
        self.meetingPasscode(lesson)
        self.waitingRoom(lesson)
        self.videoHost(lesson)
        self.videoParticipant(lesson)

        self.__web.element("//*[@id=\"meetingSaveButton\"]").click()

        log.write("{}. ders Zoom'da kaydedildi: {} ({}, {} - {})".format(
            lesson['id'], lesson['Canlı Ders Başlığı'],
            xl.getDateString(lesson['Canlı Ders Tarihi']),
            xl.getHourString(lesson['Ders Başlangıç']),
            xl.getHourString(lesson['Ders Bitiş'])))

        lesson['link'] = self.__web.element(
            "//*[@id=\"info_form\"]/div[5]/div/div/span[1]").text
        self.__web.element("//*[@id=\"showPassword\"]").click()
        lesson['passcode'] = self.__web.element(
            "//*[@id=\"displayPassword\"]").text
Пример #11
0
 def startTime(self):
     self.start_time = time.time()
     print("")
     log.write("-----------------------------------------------")
     log.write("Başlangıç Zamanı: {}".format(
         time.strftime("%d.%m.%Y, %H:%M:%S", time.localtime())))
     log.write("-----------------------------------------------")
     print("")
Пример #12
0
    def lessonSave(self, lesson, xl):
        self.__web.switchTab(1)
        self.getLessonSave()

        self.lessonMeta(lesson)
        self.lessonDate(lesson, xl)
        time.sleep(float(web_wait) / 6)
        self.lessonHour(lesson, xl)
        self.lessonDescription(lesson)
        self.lessonApp()
        self.lessonRemoteInfo(lesson)
        self.lessonName(lesson)
        time.sleep(float(web_wait) / 6)
        self.lessonUnit(lesson)
        time.sleep(float(web_wait) / 6)
        self.lessonSubject(lesson)
        self.lessonClass(lesson)

        self.__web.element(
            "//*[contains(text(), 'ÖĞRENCİLERİ LİSTELE')]").click()
        time.sleep(float(web_wait) / 6)
        # self.__web.element("//*[contains(text(), 'CANLI DERSİ GÖNDER')]").click()
        self.__web.wait(
            EC.visibility_of_element_located(
                (By.XPATH, "//*[contains(text(), 'CANLI DERSİ GÖNDER')]")),
            5).click()
        time.sleep(float(web_wait) / 6)
        # self.__web.element("//*[contains(text(), 'TAMAM')]").click()
        self.__web.wait(
            EC.visibility_of_element_located(
                (By.XPATH, "//*[contains(text(), 'TAMAM')]")), 5).click()

        log.write("{}. ders EBA'da kaydedildi: {} ({}, {} - {})".format(
            lesson['id'], lesson['Canlı Ders Başlığı'],
            xl.getDateString(lesson['Canlı Ders Tarihi']),
            xl.getHourString(lesson['Ders Başlangıç']),
            xl.getHourString(lesson['Ders Bitiş'])))
Пример #13
0
 def waitForSignIn(self, user):
     if "signin" in self.__driver.current_url:
         log.write("Zoom'a giriş yapılmamış.", "error")
         log.write(
             "Lütfen <red>Zoom</>'a <green>300 saniye</> içinde giriş yapın.",
             "header")
         self.login(user)
         self.__web.wait(
             EC.element_to_be_clickable((By.ID, 'meetingSaveButton')))
         log.write("<green>Zoom'a giriş yapıldı.</>", "header")
Пример #14
0
 def waitForSignIn(self, user):
     log.write(
         "Lütfen <red>EBA</>'ya <green>300 saniye</> içinde giriş yapın.",
         "header")
     self.__web.wait(EC.element_to_be_clickable((By.ID, 'vc-treeleftmenu')))
Пример #15
0
    web = browser.Browser(user)
    zoom = zoomClass.Zoom(web)
    eba = ebaClass.EBA(web)

    # Zoom girişini yap (tab 1)
    zoom.getSchedule()
    # eğer giriş dizini ise kullanıcının giriş yapmasını bekle
    zoom.waitForSignIn(user)

    # EBA girişini yap (tab 2)
    eba.login(user)

    # başlangıç zamanını yazdır
    process.startTime()

    log.write("Kullanıcı: {}".format(user['name']), "header")

    # eğer silme işlemi ise sadece silme yap
    if opts.get('delete') != False:
        zoom.lessonsDelete()
        eba.lessonsDelete()

        log.write("Kullanıcının dersleri silinmiştir: {}".format(user['name']),
                  "header")

        # bitiş zamanını ver farkı yazdır
        process.finishTime(0, True)

        # tarayıcı kapatılır
        web.get().close()
        web.get().quit()
Пример #16
0
    def finishTime(self, lessons_count, isDelete=False):
        finish_time = time.time()
        time_text = time.strftime("%d.%m.%Y, %H:%M:%S", time.localtime())
        diff_seconds = finish_time - self.start_time
        process = time.strftime('%H:%M:%S', time.gmtime(diff_seconds))
        print("")
        log.write("-----------------------------------------------")
        log.write("Bitiş Zamanı: {}".format(time_text))
        log.write("-----------------------------------------------")
        log.write("Toplam Süre: {}".format(process))
        log.write("-----------------------------------------------")

        if isDelete == False:
            time_saved = time.strftime(
                '%H:%M:%S',
                time.gmtime((lessons_count * normal_lesson_time) -
                            diff_seconds))
            log.write("EBABOT ile {} süre kazandınız :)".format(time_saved))
            log.write("-----------------------------------------------")
        print("")