Example #1
0
def replymsg(driver, data):
    ssl._create_default_https_context = ssl._create_unverified_context
    num = numbers.normalize(data[0])
    tipe_bimbingan = cek_bimbingan_dosen.cekTipeBimbingan(data[3])
    main(num, tipe_bimbingan)
    bkd.mail(
        kelas.getEmailDosen(kelas.getKodeDosen(num)),
        f'yooo watsapppp mennnnn {config.bot_name} kirim file BERITA ACARA PITAK nihhhh',
        f'cek cek dulu ya filenya.....',
        bkd.getFilePath(kelas.getEmailDosen(kelas.getKodeDosen(num)),
                        'beritaacarapitak', kelas.getTahunID()))
    msgreply = f"Sampun yo.. coba cek emailnyaa yaaa yang {kelas.getEmailDosen(kelas.getKodeDosen(num))}"
    return msgreply
def replymsg(driver, data):
    wmsg = reply.getWaitingMessage(os.path.basename(__file__).split('.')[0])
    wa.typeAndSendMessage(driver, wmsg)
    msg = message.normalize(data[3])
    tipe_bimbingan = cek_bimbingan_dosen.cekTipeBimbingan(msg)
    if tipe_bimbingan:
        startdate = datetime.date(
            bimbingan_dosen.getStartDate(data[0], tipe_bimbingan))
        pertemuan = bimbingan_dosen.countPertemuan(startdate)
        prodi = getHomebase(data[0])
        return 'ini yaa info pertemuannya:\n\nProdi: {prodi}\nJadwal Mulai Pertemuan: {startdate}\nPertemuan: {pertemuanke}'.format(
            prodi=prodi, startdate=startdate, pertemuanke=pertemuan[0])
    else:
        return 'aduhhh mana nihhh kok ngilang tipe bimbingannya ....'
def replymsg(driver, data):
    # wmsg = reply.getWaitingMessage(os.path.basename(__file__).split('.')[0])
    # wmsg = wmsg.replace('#BOTNAME#', config.bot_name)
    # wa.typeAndSendMessage(driver, wmsg)
    tipe_bimbingan = cek_bimbingan_dosen.cekTipeBimbingan(data[3])
    if tipe_bimbingan:
        nipy, prodiid = getDataForKaprodi(data[0])
        datestring = data[3].split(' ')[-1]
        day = int(datestring.split('-')[0])
        month = int(datestring.split('-')[1])
        year = int(datestring.split('-')[2])
        date = datetime.date(datetime(year, month, day))
        updateDateBimbingan(prodiid, date, tipe_bimbingan)
        msgreply = 'sudah di update cuyyyyy'
    else:
        msgreply = f'mana niwhhhh tipe bimbingannya {config.bot_name} ga nemuin nih dimana tipe bimbingannya'
    return msgreply
def replymsg(driver, data):
    ssl._create_default_https_context = ssl._create_unverified_context
    num = numbers.normalize(data[0])
    studentid,studentname=kelas.getNpmandNameMahasiswa(num)
    tipe_bimbingan = cek_bimbingan_dosen.cekTipeBimbingan(data[3])
    statusapprovalkambing = cekApprovalKambingAtBeginning(studentid, tipe_bimbingan)
    if tipe_bimbingan:
        if statusapprovalkambing is not None:
            if tipe_bimbingan == 'ta':
                if 'false' in statusapprovalkambing or '' in statusapprovalkambing:
                    msgreply = 'wiwiwiwiwi KAMBING kamu belum di approve nih sama Bapak/Ibu dosen yang ini nih:'
                    if 'false' == statusapprovalkambing[0] or '' == statusapprovalkambing[0]:
                        kodedosen1 = getKodeDosenBimbingan(studentid)[0]
                        namadosen = kelas.getNamaDosen(kodedosen1)
                        msgreply += f'\n{kodedosen1} | {namadosen} | PEMBIMBING 1'
                    if 'false' == statusapprovalkambing[1] or '' == statusapprovalkambing[1]:
                        kodedosen1 = getKodeDosenBimbingan(studentid)[1]
                        namadosen = kelas.getNamaDosen(kodedosen1)
                        msgreply += f'\n{kodedosen1} | {namadosen} | PEMBIMBING 2'
                else:
                    KODE_DOSEN_BIMBINGAN = getKodeDosenBimbingan(studentid)
                    status_nilai1, nilai_total1 = totalNilai(studentid, config.MINIMUM_PERTEMUAN_BIMBINGAN,
                                                             KODE_DOSEN_BIMBINGAN[0])
                    status_nilai2, nilai_total2 = totalNilai(studentid, config.MINIMUM_PERTEMUAN_BIMBINGAN,
                                                             KODE_DOSEN_BIMBINGAN[1])
                    if status_nilai1 and status_nilai2:
                        JUDUL_BIMBINGAN = getJudulBimbingan(studentid, kelas.getTahunID())
                        KODE_DOSEN_BIMBINGAN = getKodeDosenBimbingan(studentid)
                        if KODE_DOSEN_BIMBINGAN is None:
                            msgreply = f'data dengan npm {studentid} tidak ditemukan'
                        else:
                            for KODE_DOSEN in KODE_DOSEN_BIMBINGAN:
                                NAMA_DOSEN = kelas.getNamaDosen(KODE_DOSEN)
                                NIDN_DOSEN = getNIDNDosen(KODE_DOSEN)
                                TAHUN_AJARAN = kelas.getTahunAjaran(kelas.getProdiIDwithStudentID(studentid)).split(' ')[-1]
                                photo = berita_acara_pitak.cekPhotoRoute(studentid)
                                makePdf(
                                    npm_mahasiswa=studentid,
                                    nama_mahasiswa=studentname,
                                    tipe_bimbingan=tipe_bimbingan,
                                    nama_pembimbing=NAMA_DOSEN,
                                    kode_dosen_pembimbing=KODE_DOSEN,
                                    nidn_pembimbing=NIDN_DOSEN,
                                    tahun_ajaran=TAHUN_AJARAN,
                                    photo=photo,
                                    judul=JUDUL_BIMBINGAN,
                                    total_nilai=totalNilai(studentid, config.MINIMUM_PERTEMUAN_BIMBINGAN, KODE_DOSEN)[1]
                                )
                            bkd.mail(kelas.getDataMahasiswa(studentid)[3],
                                     f'eyyowwwwwww {config.bot_name} nihhhh mau nganter file yang kamu mintaaa',
                                     f'ini ya file KAMBING (Kartu Bimbingan) yang Akang/Teteh minta silahkan di cek... ehee....',
                                     bkd.getFilePath(kelas.getDataMahasiswa(studentid)[3], 'kambing', switcherTipeBimbingan(tipe_bimbingan)))
                            msgreply = f"sudah selesai dan sudah dikirim ke email kamu yang {kelas.getDataMahasiswa(studentid)[3]} yaa...."
                    else:
                        msgreply = f'mohon maaf belum bisa cetak kartu bimbingan dikarenakan pertemuan masih ada yang kurang'
                        if status_nilai1 == False:
                            msgreply += f'\n{KODE_DOSEN_BIMBINGAN[0]} | {kelas.getNamaDosen(KODE_DOSEN_BIMBINGAN[0])}'
                        if status_nilai2 == False:
                            msgreply += f'\n{KODE_DOSEN_BIMBINGAN[1]} | {kelas.getNamaDosen(KODE_DOSEN_BIMBINGAN[1])}'
            else:
                if statusapprovalkambing[0] == 'false' or statusapprovalkambing[0] == '':
                    msgreply = 'wiwiwiwiwi KAMBING kamu belum di approve nih sama Bapak/Ibu dosen yang ini nih:'
                    kodedosen1 = getKodeDosenBimbingan(studentid)[0]
                    namadosen = kelas.getNamaDosen(kodedosen1)
                    msgreply += f'\n{kodedosen1} | {namadosen} | PEMBIMBING 1'
                else:
                    KODE_DOSEN_BIMBINGAN = getKodeDosenBimbingan(studentid)
                    status_nilai1, nilai_total1 = totalNilai(studentid, config.MINIMUM_PERTEMUAN_BIMBINGAN,
                                                             KODE_DOSEN_BIMBINGAN[0])
                    if status_nilai1:
                        JUDUL_BIMBINGAN = getJudulBimbingan(studentid, kelas.getTahunID())
                        KODE_DOSEN_BIMBINGAN = getKodeDosenBimbingan(studentid)
                        if KODE_DOSEN_BIMBINGAN is None:
                            msgreply = f'data dengan npm {studentid} tidak ditemukan'
                        else:
                            KODE_DOSEN = KODE_DOSEN_BIMBINGAN[0]
                            NAMA_DOSEN = kelas.getNamaDosen(KODE_DOSEN)
                            NIDN_DOSEN = getNIDNDosen(KODE_DOSEN)
                            TAHUN_AJARAN = kelas.getTahunAjaran(kelas.getProdiIDwithStudentID(studentid)).split(' ')[-1]
                            photo = berita_acara_pitak.cekPhotoRoute(studentid)
                            makePdf(
                                npm_mahasiswa=studentid,
                                nama_mahasiswa=studentname,
                                tipe_bimbingan=tipe_bimbingan,
                                nama_pembimbing=NAMA_DOSEN,
                                kode_dosen_pembimbing=KODE_DOSEN,
                                nidn_pembimbing=NIDN_DOSEN,
                                tahun_ajaran=TAHUN_AJARAN,
                                photo=photo,
                                judul=JUDUL_BIMBINGAN,
                                total_nilai=totalNilai(studentid, config.MINIMUM_PERTEMUAN_BIMBINGAN, KODE_DOSEN)[1]
                            )
                            getFilePath(kelas.getDataMahasiswa(studentid)[3], 'kambing',
                                            switcherTipeBimbingan(tipe_bimbingan))
                            bkd.mail(kelas.getDataMahasiswa(studentid)[3],
                                     f'eyyowwwwwww {config.bot_name} nihhhh mau nganter file yang kamu mintaaa',
                                     f'ini ya file KAMBING (Kartu Bimbingan) yang Akang/Teteh minta silahkan di cek... ehee....',
                                     getFilePath(kelas.getDataMahasiswa(studentid)[3], 'kambing', switcherTipeBimbingan(tipe_bimbingan)))
                            msgreply = f"sudah selesai dan sudah dikirim ke email kamu yang {kelas.getDataMahasiswa(studentid)[3]} yaa...."
                    else:
                        msgreply = f'mohon maaf belum bisa cetak kartu bimbingan dikarenakan pertemuan masih ada yang kurang:'
                        if status_nilai1 == False:
                            msgreply += f'\n{KODE_DOSEN_BIMBINGAN[0]} | {kelas.getNamaDosen(KODE_DOSEN_BIMBINGAN[0])}'
        else:
            msgreply = f'mohon maaf data dengan npm {studentid} tidak bisa ditemukan'
    else:
        msgreply = 'Mana nihhhh tipe bimbingannya coba dicek lagi yaa....'

    return msgreply
def replymsg(driver, data):
    # wmsg = reply.getWaitingMessage(os.path.basename(__file__).split('.')[0])
    # wa.typeAndSendMessage(driver, wmsg)
    num = data[0]
    msg = data[3]
    msg = message.normalize(msg)
    tipe_bimbingan = cek_bimbingan_dosen.cekTipeBimbingan(msg)
    if tipe_bimbingan:
        datefromdatabasehomebase = getStartDate(num, tipe_bimbingan)
        if datefromdatabasehomebase is None:
            msgreply = 'wahhh kayaknya jadwal start bimbingannya belum diset sama kaprodi kamu deehhhh, coba minta di setting dulu jadwalnya....'
        else:
            startdate = datetime.date(datefromdatabasehomebase)
            pertemuan, datemulai, dateakhir = countPertemuan(startdate)
            if pertemuan == False:
                msgreply = 'yahhh pertemuannya udah kelewat batasss, yang sabar yaaaaaa..... :('
            else:
                try:
                    studentid = msg.split(' bimbingan ')[1].split(' ')[1]
                    tipe = msg.split(' bimbingan ')[1].split(' ')[0]
                    target_selesai = msg.split(' sudah dikerjakan ')[1].split(
                        ' pekerjaan selanjutnya ')[0]
                    terget_selanjutnya = msg.split(
                        ' pekerjaan selanjutnya ')[1].split(' nilai ')[0]
                    topik = target_selesai + ';' + terget_selanjutnya
                    nilai = msg.split(' nilai ')[1].split(' passcode ')[0]
                    ct = normalizeNewLine(
                        data[3]).split(' passcode ')[1].split(' ivcode ')[0]
                    iv = normalizeNewLine(data[3]).split(' ivcode ')[1]
                except:
                    return 'wahhhh salah nih keywordnya coba diperbaikin deh....'
                resultpasscode = decryptData(normalizeBase64Code(iv),
                                             normalizeBase64Code(ct))
                datenow = datetime.date(datetime.now()).strftime('%d%m%Y')
                hari = datetime.now().strftime('%A')
                hari = bimbingan_mahasiswa.hariSwitcher(hari)
                studentphonenumber = kelas.getStudentPhoneNumberFromNPM(
                    studentid)
                studentphonenumber = normalizePhoneNumberToWhatsappVersion(
                    studentphonenumber)
                logmsg = ''
                for i in getLogMessageStudent(datemulai, dateakhir,
                                              kelas.getKodeDosen(num),
                                              studentphonenumber):
                    if i[0] != '':
                        logmsg += i[0] + ';'
                if logmsg == '':
                    msgreply = 'mohon maaf tidak ada diskusi diantara Dosen dan Mahasiswa maka tidak bisa di input... atau dosen dan mahasiswa kurang aktif diskusi'
                else:
                    if resultpasscode == studentid + datenow + hari:
                        if int(nilai) > 100:
                            return 'buset nilainya kaga salah itu bos?? gede benerr......'
                        if int(nilai) < 0:
                            return 'wedewww kejam amat ngasih nilainya xixixixi'
                        else:
                            kodedosen = kelas.getKodeDosen(num)
                            if isSudahInputBimbingan(studentid, pertemuan,
                                                     kodedosen,
                                                     tipe_bimbingan):
                                updateNilaiBimbingan(studentid=studentid,
                                                     nilai=nilai,
                                                     topik=topik,
                                                     pertemuan=pertemuan,
                                                     logmsg=logmsg)
                                msgreply = 'oke sudah iteung update yaaa nilainya.....'
                            else:
                                insertBimbingan(studentid=studentid,
                                                lecturerid=kodedosen,
                                                tipe=tipe,
                                                topik=topik,
                                                nilai=nilai,
                                                pertemuan=pertemuan,
                                                logmsg=logmsg)
                                msgreply = 'oke sudah di input yaaa....'
                            nama = kelas.getStudentNameOnly(studentid)
                            databimbingan = getDataBimbingan(studentid)
                            if databimbingan == None:
                                return 'maaf data bimbingan tidak dapat ditemukan'
                            else:
                                pembimbing1 = databimbingan[0][-3]
                                pembimbing2 = None
                                for i in databimbingan:
                                    if i[-3] != pembimbing1:
                                        pembimbing2 = databimbingan.index(i)
                                        break
                                if pembimbing2 is None:
                                    pembimbing2 = False
                                    pembimbing1 = databimbingan[0:]
                                else:
                                    pembimbing1 = databimbingan[0:pembimbing2]
                                    pembimbing2 = databimbingan[pembimbing2:]
                                msgreply += '\n\n*PENILAIAN DOSEN PEMBIMBING*'
                                for i in pembimbing1:
                                    topik = i[3].split(';')
                                    target_selesai = topik[0]
                                    target_selanjutnya = topik[1]
                                    datalog = i[7]
                                    datalog = datalog.split(';')
                                    namadosen = kelas.getNamaDosen(i[5])
                                    msgreply += '\n\nNama: {nama}\nNPM: {studentid}\nTipe: {tipe}\nPertemuan: {pertemuanke}\nSudah Dikerjakan: {targetselesai}\nPekerjaan Selanjutnya: {targetselanjutnya}\nNilai: {nilai}\nPenilai: {penilai} / {namadosen}\nJumlah Percakapan: {log}'.format(
                                        nama=nama,
                                        studentid=i[0],
                                        tipe=i[1],
                                        pertemuanke=i[2],
                                        targetselesai=target_selesai,
                                        targetselanjutnya=target_selanjutnya,
                                        nilai=i[4],
                                        penilai=i[5],
                                        log=str(len(datalog)),
                                        namadosen=namadosen)
                                if pembimbing2 == False:
                                    # msgreply+='\n\n*PENILAIAN DOSEN PEMBIMBING*\npembimbing belum input nilai'
                                    msgreply += ''
                                else:
                                    msgreply += '\n\n*PENILAIAN DOSEN PEMBIMBING*'
                                    for i in pembimbing2:
                                        topik = i[3].split(';')
                                        target_selesai = topik[0]
                                        target_selanjutnya = topik[1]
                                        datalog = i[7]
                                        datalog = datalog.split(';')
                                        namadosen = kelas.getNamaDosen(i[5])
                                        msgreply += '\n\nNama: {nama}\nNPM: {studentid}\nTipe: {tipe}\nPertemuan: {pertemuanke}\nSudah Dikerjakan: {targetselesai}\nPekerjaan Selanjutnya: {targetselanjutnya}\nNilai: {nilai}\nPenilai: {penilai} / {namadosen}\nJumlah Percakapan: {log}'.format(
                                            nama=nama,
                                            studentid=i[0],
                                            tipe=i[1],
                                            pertemuanke=i[2],
                                            targetselesai=target_selesai,
                                            targetselanjutnya=
                                            target_selanjutnya,
                                            nilai=i[4],
                                            penilai=i[5],
                                            log=str(len(datalog)),
                                            namadosen=namadosen)
                    else:
                        msgreply = 'passcodenya salah bosqueeeeee'
        return msgreply
    else:
        return 'adidawwww mana nihhh tipe bimbingannyaa......'