Esempio n. 1
0
def replymsg(driver, data):
    if kelas.cekSiap():
        wmsg = reply.getWaitingMessage(os.path.basename(__file__).split('.')[0])
        wa.typeAndSendMessage(driver, wmsg)
        num = data[0]
        studentid=kelas.getStudentIdFromParentPhoneNumber(num)
        msgreply=''
        for student in studentid:
            npmmahasiswa=student[0]
            scores=kelas.getStudentScores(studentid=npmmahasiswa)
            studentname=scores[0][1]
            npm='NPM: '+npmmahasiswa+'\n'
            nama='Nama: '+studentname+'\n'
            jadwalid=[]
            score='\n=====NILAI=====\n'
            for v in scores:
                jadwalid.append(v[-3])
                score=score+v[-2]+': '+v[-1]+'\n'
            absent='\n=====ABSENSI=====\n'
            for v in jadwalid:
                absent=absent+kelas.getDataMatkul(v)[1]+': '+str(round(int(kelas.getKehadiranMahasiswa(jadwalid=v, studentid=npmmahasiswa)/config.kehadiran*100)))+'%\n'
            msgreply+=npm+nama+score+absent+'\n\n'
    else:
        msgreply='Mohon maaf server Akademik SIAP sedang dalam kondisi DOWN, mohon untuk menginformasikan ke ADMIN dan tunggu hingga beberapa menit kemudian, lalu ulangi kembali, terima kasih....'
    return msgreply
def kelasSelesai(driver, data):
    if kelas.cekSiap():
        grp = data[1]
        num = data[0]
        if kelas_mulai.isJadwalID(kelas.getKodeDosen(num), grp.split('-')[0]):
            msg = data[3]
            msg = message.normalize(msg)
            if 'luring' in msg:
                tipe = 'luring'
            else:
                tipe = 'daring'
            try:
                kehadiran = kelas.getKehadiran(grp.split('-')[0])
                rencana_kehadiran = kelas.rencana_kehadiran(grp.split('-')[0])
                if (kehadiran != rencana_kehadiran and
                        kehadiran < rencana_kehadiran) or (kelas.isSudahKelas(
                            jadwalid=grp.split('-')[0],
                            lecturercode=kelas.getKodeDosen(num=num))):
                    wmsg = reply.getWaitingMessage(
                        os.path.basename(__file__).split('.')[0])
                    wa.typeAndSendMessage(driver, wmsg)
                    materi = msg.lower()
                    try:
                        materi = materi.split(' materi ')[1]
                    except:
                        return f'yahhh materinya ngga ada nih tambahin dong materinyaaa.....,\ncontoh: iteung kelas daring selesai materi chapter 1'
                    msgreply = kelas.siapabsensiwithsql(
                        grp=grp,
                        num=numbers.normalize(num),
                        materi=materi,
                        tipe=tipe)
                    if msgreply != '':
                        if msgreply != []:
                            try:
                                msgreply = kelas.beritaAcara(driver=driver,
                                                             num=num,
                                                             groupname=grp,
                                                             data=msgreply,
                                                             msg=msg)
                            except:
                                msgreply = 'aduh materinya ga ada nich, \ncontoh format yang bener gini ya: \niteung kelas daring selesai materi chapter 04'
                        else:
                            msgreply = 'aduh mahasiswanya belum ada yang update nomer hp SIAP nich, \nKalo mau ke absen cocokin dulu dong nomer hp yang ada di SIAP dengan yang kamu pakai di WhatsApp \nIngat ya gunakan format international, contoh: 6282217401448 '
                    else:
                        msgreply = "adohhhh wadohdoh peserta absensinya kosong nih, coba ganti ke jadwal id yang satunya lagi eheeeee.... :-3"
                elif kehadiran == '':
                    msgreply = 'yahhhhh kehadirannya ngga #BOTNAME# temuin coba di cek lagi jadwal idnya yaaa....'
                else:
                    msgreply = 'Mohon maaf Untuk kuliah daring ini sudah memenuhi kuota pertemuan pada jadwal kali ini...'
            except:
                listMK = kelas.getListMK(kelas.getKodeDosen(data[0]))
                guide = 'yahh....nama groupnya jangan diubah dong. hihihi ganti lagi ya.jadi JADWALID-KELAS-NAMAMK,contoh : 17312-A-KECERDASAN BUATAN : \n'
                msgreply = guide + listMK
        else:
            listMK = kelas.getListMK(kelas.getKodeDosen(data[0]))
            guide = 'aduwww waduwduwwww ini bukan Jadwal ID Bapak/Ibu dosen nihhhh, yang bener yang dibawah ini yaaa.... : \n'
            msgreply = guide + listMK
    else:
        msgreply = 'Mohon maaf server Akademik SIAP sedang dalam kondisi DOWN, mohon untuk menginformasikan ke ADMIN dan tunggu hingga beberapa menit kemudian, lalu ulangi kembali, terima kasih....'
    return msgreply
Esempio n. 3
0
def replymsg(driver, data):
    if kelas.cekSiap():
        kodedosen = kelas.getKodeDosen(data[0])
        wmsg = reply.getWaitingMessage(
            os.path.basename(__file__).split('.')[0])
        wmsg = wmsg.replace('#EMAIL#', kelas.getEmailDosen(kodedosen))
        wmsg = wmsg.replace('#BOTNAME#', config.bot_name)
        wa.typeAndSendMessage(driver, wmsg)
        msg = data[3].lower()

        try:
            data = f"{kelas.getEmailDosen(kodedosen)};{[npm for npm in msg.split(' ') if npm.isdigit() and len(npm) == 7][0]}"
            subprocess.Popen([
                "python", "run.py",
                os.path.basename(__file__).split('.')[0], data
            ],
                             cwd=config.cwd)
        except Exception as e:
            wa.typeAndSendMessage(
                driver, 'Mimpam zuzuzu.. anda salah keyword...' + str(e))

    else:
        wa.typeAndSendMessage(
            driver,
            'Mohon maaf server Akademik SIAP sedang dalam kondisi DOWN, mohon untuk menginformasikan ke ADMIN dan tunggu hingga beberapa menit kemudian, lalu ulangi kembali, terima kasih....'
        )
    return ''
def replymsg(driver, data):
    if kelas.cekSiap():
        wmsg = reply.getWaitingMessage(os.path.basename(__file__).split('.')[0])
        wa.typeAndSendMessage(driver, wmsg)
        msgreply=message(data)
    else:
        msgreply='Mohon maaf server Akademik SIAP sedang dalam kondisi DOWN, mohon untuk menginformasikan ke ADMIN dan tunggu hingga beberapa menit kemudian, lalu ulangi kembali, terima kasih....'
    return msgreply
Esempio n. 5
0
def replymsg(driver, data):
    if kelas.cekSiap():
        wmsg = reply.getWaitingMessage(
            os.path.basename(__file__).split('.')[0])
        wa.typeAndSendMessage(driver, wmsg)
        num = data[0]
        num = numbers.normalize(num)
        msg = data[3]
        data = msg.split(' ')
        # error ketika uas
        try:
            if 'matkul' in data and 'jadwal' not in data:
                matkul = data[data.index('matkul') + 1] if any(
                    char.isdigit()
                    for char in data[data.index('matkul') + 1]) else False
                kelass = data[data.index('kelas') +
                              1].upper() if len(data[data.index('kelas') +
                                                     1]) < 2 else False

                if matkul and kelass:
                    datas = {
                        'tahun': kelas.getTahunID(),
                        'kode_matkul': matkul,
                        'kelas': convertKelas(kelass),
                        'jadwal': 0
                    }

                    msgreply = mainCekNilai(num, datas)

                    msgreply = "Ini nilai ujian yang Bapak/Ibu minta\n\n" + msgreply
                else:
                    msgreply = 'Salah keyword beb...................'
            elif 'jadwal' in data and 'matkul' not in data:
                jadwal = data[data.index('jadwal') + 1] if all(
                    char.isdigit()
                    for char in data[data.index('jadwal') + 1]) else False
                if jadwal:
                    datas = {
                        'tahun': kelas.getTahunID(),
                        'kode_matkul': 0,
                        'kelas': 0,
                        'jadwal': jadwal
                    }

                    msgreply = mainCekNilai(num, datas)

                    msgreply = "Ini nilai ujian yang Bapak/Ibu minta\n\n" + msgreply
                else:
                    msgreply = 'Salah keyword beb...............................'
            else:
                msgreply = 'Salah keyword beb......'
        except:
            msgreply = 'Salah keyword beb....., atau salah masukin jadwal uas atau uts'
    else:
        msgreply = 'Mohon maaf server Akademik SIAP sedang dalam kondisi DOWN, mohon untuk menginformasikan ke ADMIN dan tunggu hingga beberapa menit kemudian, lalu ulangi kembali, terima kasih....'
    return msgreply
Esempio n. 6
0
def network_ping():
    ping = '\n====NETWORK PING====\n'
    whatsapp = 'WhatsApp: ' + str(
        int(pyspeedtest.SpeedTest('web.whatsapp.com').ping())) + 'ms\n'
    if kelas.cekSiap():
        siap = 'System Akademik SIAP: ' + str(
            int(pyspeedtest.SpeedTest('siap.poltekpos.ac.id').ping())) + 'ms\n'
    else:
        siap = 'System Akademik SIAP: DOWN\n'
    message_ping = ping + whatsapp + siap
    return message_ping
Esempio n. 7
0
def replymsg(driver, data):
    msgreply = ""    
    if kelas.cekSiap():    
        num = numbers.normalize(data[0])        
        try:
            if getMahasiswa(num):
                npm, prodi, email = getMahasiswa(num)
                
                prodis = convertProdi(prodi)
                if checkSKPIProdiFile(prodis[0]):
                    dfStatus = pd.read_excel(f"./skpi/list-skpi/list-wisudawan.xlsx")
                    # print(dfStatus)
                    status = dfStatus.loc[dfStatus["NPM"] == int(npm)].values.tolist()[0]
                    # print(status)
                    # print(status[2] != '-', status[3] != '-')
                    if status[2] != '-' and status[3] != '-' and status[4] != '-':
                        data = f"{'mahasiswa'};{npm};{email};{prodi}"
                        # print(data)
                        subprocess.Popen(["python", "run.py", os.path.basename(__file__).split('.')[0],data], cwd=config.cwd)
                        msgreply = ""
                        wmsg = reply.getWaitingMessage(os.path.basename(__file__).split('.')[0])
                        wmsg = wmsg.replace('#EMAIL#', email)
                        wmsg = wmsg.replace('#BOTNAME#', config.bot_name)
                        wa .typeAndSendMessage(driver, wmsg)
                    else:
                        submitSKL(npm)
                        msgreply = "Permohonan *Surat Keterangan Lulus* Anda telah diajukan, harap lakukan konfirmasi"
                        if status[2] == '-':
                            msgreply += " ke staff *Kaprodi* masing-masing"
                        if status[3] == '-':
                            msgreply += " sama staff *Wadir 1* (Bu Tetty)"
                        msgreply += ", setelah dikonfirmasi tinggal menunggu saja, lalu Anda bisa memintanya lagi ke saya..."
                else:   
                    msgreply = "Belum ada nih list data SKLnya..."
                    
                
            else:
                msgreply = f"Ikan teri pake saos.. anda siapa bos..\nSebenarnya ada beberapa kemungkinan, pertama kamu bukan mahasiswa yg udh wisuda.. Mungkin no hp di SIAP salah kali... apalagi ya.. kyknya itu aja.."
            
        except Exception as e:
            msgreply = f'Ikan hiu makan tomat.. ada error mat... {str(e)}'
        
    else:
        wa.typeAndSendMessage(driver, 'Mohon maaf server Akademik SIAP sedang dalam kondisi DOWN, mohon untuk menginformasikan ke ADMIN dan tunggu hingga beberapa menit kemudian, lalu ulangi kembali, terima kasih....')
    return msgreply
def replymsg(driver, data):
    if kelas.cekSiap():
        wmsg = reply.getWaitingMessage(
            os.path.basename(__file__).split('.')[0])
        wmsg = wmsg.replace('#BOTNAME#', config.bot_name)
        wa.typeAndSendMessage(driver, wmsg)
        msg = data[3]
        msg = normalizeday(msg)
        num = data[0]
        day = dataHari(msg)
        if day != '':
            hariId = kodeHari(day)
            msgreply = jadwalKuliah(hariId, num)
            msgreply = "Ini ya jadwal kuliah yang bapak/ibu minta \n" + msgreply
        else:
            listMK = kelas.getListMK(kelas.getKodeDosen(data[0]))
            msgreply = "Ini ya jadwal kuliah yang bapak/ibu minta \n" + listMK
    else:
        msgreply = 'Mohon maaf server Akademik SIAP sedang dalam kondisi DOWN, mohon untuk menginformasikan ke ADMIN dan tunggu hingga beberapa menit kemudian, lalu ulangi kembali, terima kasih....'
    return msgreply
Esempio n. 9
0
def replymsg(driver, data):
    msgreply = ""
    if kelas.cekSiap():
        num = numbers.normalize(data[0])
        try:
            if kelas.getNpmandNameMahasiswa(num):
                npm, nama = kelas.getNpmandNameMahasiswa(num)
                # print(npm, nama)
                tahunID = kelas.getTahunID()
                namaMhs, prodiMhs, singkatan, prodiID, email = getMahasiswaByNpm(
                    npm)
                # print(namaMhs, prodiMhs, singkatan, prodiID, email)
                noSurat = insertMhs(npm, prodiID, tahunID)
                # print(noSurat)
                if checkApproveMhs(npm, prodiID, tahunID):
                    data = f"{npm};{singkatan};{noSurat}"
                    subprocess.Popen([
                        "python", "run.py",
                        os.path.basename(__file__).split('.')[0], data
                    ],
                                     cwd=config.cwd)
                    wmsg = reply.getWaitingMessage(
                        os.path.basename(__file__).split('.')[0])
                    wmsg = wmsg.replace('#EMAIL#', email)
                    wmsg = wmsg.replace('#BOTNAME#', config.bot_name)
                    wa.typeAndSendMessage(driver, wmsg)
                else:
                    msgreply = "SKMK anda telah diajukan, silahkan hubungi Ka. Baak untuk minta approve SKMK yang telah diajukan"
            else:
                msgreply = f"Ikan teri pake saos.. anda siapa bos..\nSebenarnya ada beberapa kemungkinan, pertama kamu bukan mahasiswa yg udh wisuda.. Mungkin no hp di SIAP salah kali... apalagi ya.. kyknya itu aja.."

        except Exception as e:
            msgreply = f'Ikan hiu makan tomat.. ada error mat... {str(e)}'

    else:
        # pass
        wa.typeAndSendMessage(
            driver,
            'Mohon maaf server Akademik SIAP sedang dalam kondisi DOWN, mohon untuk menginformasikan ke ADMIN dan tunggu'
        )
    return msgreply
Esempio n. 10
0
def replymsg(driver, data):
    if kelas.cekSiap():
        kodedosen = kelas.getKodeDosen(data[0])
        wmsg = reply.getWaitingMessage(
            os.path.basename(__file__).split('.')[0])
        wmsg = wmsg.replace('#EMAIL#', getEmailDosen(kodedosen))
        wmsg = wmsg.replace('#BOTNAME#', config.bot_name)
        wa.typeAndSendMessage(driver, wmsg)
        num = data[0]
        num = numbers.normalize(num)

        subprocess.Popen([
            "python", "run.py",
            os.path.basename(__file__).split('.')[0], num
        ],
                         cwd=config.cwd)
    else:
        wa.typeAndSendMessage(
            driver,
            'Mohon maaf server Akademik SIAP sedang dalam kondisi DOWN, mohon untuk menginformasikan ke ADMIN dan tunggu hingga beberapa menit kemudian, lalu ulangi kembali, terima kasih....'
        )
    return ''
def replymsg(driver, data):
    if kelas.cekSiap():
        kodedosen = kelas.getKodeDosen(data[0])
        wmsg = reply.getWaitingMessage(
            os.path.basename(__file__).split('.')[0])
        wmsg = wmsg.replace('#EMAIL#', getEmailDosen(kodedosen))
        wmsg = wmsg.replace('#BOTNAME#', config.bot_name)
        wa.typeAndSendMessage(driver, wmsg)
        msg = data[3].lower()
        if "uas" in msg:
            result = "uas"
            data = kodedosen + ";" + result
            subprocess.Popen([
                "python", "run.py",
                os.path.basename(__file__).split('.')[0], data
            ],
                             cwd=config.cwd)
        elif "uts" in msg:
            result = "uts"
            data = kodedosen + ";" + result
            subprocess.Popen([
                "python", "run.py",
                os.path.basename(__file__).split('.')[0], data
            ],
                             cwd=config.cwd)
        else:
            wa.typeAndSendMessage(driver, 'Keyword salah mereun....')
        # result =
        # msg = data[3].split(' ')

    else:
        wa.typeAndSendMessage(
            driver,
            'Mohon maaf server Akademik SIAP sedang dalam kondisi DOWN, mohon untuk menginformasikan ke ADMIN dan tunggu hingga beberapa menit kemudian, lalu ulangi kembali, terima kasih....'
        )
    return ''
def replymsg(driver, data):
    if kelas.cekSiap():
        wmsg = reply.getWaitingMessage(
            os.path.basename(__file__).split('.')[0])
        wmsg = wmsg.replace('#BOTNAME#', config.bot_name)
        wa.typeAndSendMessage(driver, wmsg)
        msg = data[3]
        num = data[0]
        nomor = numbers.normalize(num)
        data = msg.split(' ')

        try:
            filename = downloadFile(driver)
            sleep(2)
            moveFiles(filename)
            msgreply = inputByExcel(filename, kelas.getTahunID(), nomor)
            removeFile(filename)
        except FileNotFoundError:
            msgreply = 'Gak ada filenya....'
        except:
            msgreply = 'Ada masalah di kodingannya...'
    else:
        msgreply = 'Mohon maaf server Akademik SIAP sedang dalam kondisi DOWN, mohon untuk menginformasikan ke ADMIN dan tunggu hingga beberapa menit kemudian, lalu ulangi kembali, terima kasih....'
    return msgreply
Esempio n. 13
0
def kelasMulai(data):
    msg = data[3]
    msg = message.normalize(msg)
    if kelas.cekSiap():
        grp = data[1]
        num = data[0]
        if isJadwalID(kelas.getKodeDosen(num), grp.split('-')[0]):
            try:
                rencana_kehadiran = kelas.rencana_kehadiran(grp.split('-')[0])
                kehadiran = kelas.getKehadiran(grp.split('-')[0])
                if (kehadiran != rencana_kehadiran and
                        kehadiran < rencana_kehadiran) or (kelas.isSudahKelas(
                            jadwalid=grp.split('-')[0],
                            lecturercode=kelas.getKodeDosen(num=num))):
                    # if kelas.is_time_to_attendant(grp.split('-')[0]):
                    if kelas.isMatkul(grp.split('-')[0]):
                        jadwalid = grp.split('-')[0]
                        jadwalserial = kelas.getJadwalSerial(jadwalid=jadwalid)
                        if jadwalserial == '0':
                            jadwalid = jadwalid
                        else:
                            jadwalid = jadwalserial
                        abc = 1
                        listStudent = '\n\nBerikut Peserta Absensinya:\n'
                        for i in kelas.pesertaAbsensi(jadwalid=jadwalid):
                            npm = i[-1]
                            nama = kelas.getStudentNameOnly(npm)
                            listStudent += f'{abc}. {npm} {nama} {kelas.getStudentPhoneNumberFromNPM(npm)} {kelas.getStudentEmail(npm)}\n'
                            abc += 1
                        coursename = kelas.getDataMatkul(grp.split('-')[0])[1]
                        messages = reply.getWaitingMessage(
                            os.path.basename(__file__).split('.')[0])
                        messages = messages.replace('#MATKUL#', coursename)
                        messages = messages.replace('#BOTNAME#',
                                                    config.bot_name)
                        if 'luring' in msg:
                            link = '\n\nLink Kelas Luring (offline):\n' + config.link_kelas_luring + grp.replace(
                                ' ', '%20')
                            msgreply = messages + link + listStudent
                        else:
                            msgreply = messages + listStudent
                    else:
                        listMK = kelas.getListMK(kelas.getKodeDosen(data[0]))
                        guide = 'Yahh... Nama grupnya belum JADWALID-KELAS-NAMA. yuk ubah #BOTNAME# kasih contoh 17312-A-KECERDASAN BUAT klo lupa kode mata kuliah #BOTNAME# kasih ya ini daftarnya : \n'
                        msgreply = guide + listMK
                    # else:
                    #     data = kelas.jam_mulai_jam_selesai(grp.split('-')[0])
                    #     return f'iwiwiwiwiwiwwwwwwww jam sekarang diluar batas waktu kelas nihhh mohon untuk memulai kelas pada jamnya yaaa... \n\nMatakuliah: {data["Nama"]}\nJam Mulai: {data["JamMulai"]}\nJam Selesai: {data["JamSelesai"]}'
                elif kehadiran == '':
                    msgreply = 'yahhhhh kehadirannya ngga #BOTNAME# temuin coba di cek lagi jadwal idnya yaaa....'
                else:
                    jadwalid = grp.split('-')[0]
                    datamatkul = kelas.getMatakuliahInfowithJadwalID(jadwalid)
                    if datamatkul == None:
                        msgreply = "mohon maaf JadwalID salah bisa untuk dicek kembali...."
                    else:
                        datamatkul = kelas.getMatakuliahInfowithJadwalID(
                            jadwalid)
                        prodi = kelas.switcherJurusan(datamatkul[5])
                        mkkode = datamatkul[11]
                        namamatkul = datamatkul[12]
                        hari = kelas.toHari(str(datamatkul[13]))
                        jammulai = datamatkul[14]
                        jamselesai = datamatkul[15]
                        dosen = kelas.getNamaDosen(datamatkul[21])
                        rencanakehadiran = datamatkul[22]
                        kehadiran = datamatkul[23]
                        msgreply = 'Mohon maaf Untuk kuliah daring ini sudah memenuhi kuota pertemuan pada jadwal kali ini...\n\n'
                        msgreply += f"Jadwal ID: {jadwalid}\nProgram Studi: {prodi}\nKode Matakuliah: {mkkode}\nNama Matakuliah: {namamatkul}\nHari: {hari}\nJam Mulai: {jammulai}\nJam Selesai: {jamselesai}\nDosen/Kode Dosen: {dosen}/{datamatkul[21]}\nRencana Kehadiran: {rencanakehadiran}\nKehadiran: {kehadiran}"
            except Exception as e:
                print(str(e))
                listMK = kelas.getListMK(kelas.getKodeDosen(data[0]))
                guide = 'Di setting dulu ya nama groupnya jadi JADWALID-KELAS-NAMA contoh : 17312-A-KECERDASAN BUAT, ini daftarnya : \n'
                msgreply = guide + listMK
        else:
            listMK = kelas.getListMK(kelas.getKodeDosen(data[0]))
            guide = 'aduwww waduwduwwww ini bukan Jadwal ID Bapak/Ibu dosen nihhhh, yang bener yang dibawah ini yaaa.... : \n'
            msgreply = guide + listMK
    else:
        msgreply = 'Mohon maaf server Akademik SIAP sedang dalam kondisi DOWN, mohon untuk menginformasikan ke ADMIN dan tunggu hingga beberapa menit kemudian, lalu ulangi kembali, terima kasih....'
    return msgreply
Esempio n. 14
0
def replymsg(driver, data):    
    if kelas.cekSiap():    
        num = numbers.normalize(data[0])
        tahunID = '20192'
        msg = data[3].lower().split(' ')
        msgreply = ""
        try:
            if kelas.getKodeDosen(num):          
                dosenID = kelas.getKodeDosen(num)
                
                email = kelas.getEmailDosen(dosenID)
                wmsg = reply.getWaitingMessage(os.path.basename(__file__).split('.')[0])
                wmsg = wmsg.replace('#EMAIL#', email)
                wmsg = wmsg.replace('#BOTNAME#', config.bot_name)
                wa.typeAndSendMessage(driver, wmsg)
                
                tipe = 'ta'
                
                df = pd.read_excel(f'jadwal_sidang_ta_14.xlsx')
                listPem = ['koor', 'tipe', 'tahun']
                df = df.loc[:, listPem]
                df = df.drop_duplicates()
                df = df.loc[(df["koor"] == dosenID) & (df["tipe"] == tipe) & (df["tahun"] == int(tahunID))]
                
                if df.empty:
                    msgreply = "Harus koornya cuy ato Anda salah tipe sidang..."
                else:
                    if checkStatusSidangKoor(dosenID, tahunID, tipe):
                        data = f"{'dosen'};{dosenID};{tahunID};{email};{tipe}"
                        subprocess.Popen(["python", "run.py", os.path.basename(__file__).split('.')[0],data], cwd=config.cwd)
                        msgreply = ""
                    else:
                        msgreply = "Blm ada tuh..."
                    
            elif kelas.getNpmandNameMahasiswa(num):
                try:
                    npm, nama=kelas.getNpmandNameMahasiswa(num)
                    
                    email = getEmail(npm)
                    wmsg = reply.getWaitingMessage(os.path.basename(__file__).split('.')[0])
                    wmsg = wmsg.replace('#EMAIL#', email)
                    wmsg = wmsg.replace('#BOTNAME#', config.bot_name)
                    wa.typeAndSendMessage(driver, wmsg)
                    
                    kategori = getKategoriSidang(npm, tahunID)
                    if checkRevisiStatus(npm, tahunID):
                        if checkStatusSidang(npm, tahunID, kategori):
                            email = getEmail(npm)
                            data = f"{'mahasiswa'};{npm};{tahunID};{email};{kategori}"
                            subprocess.Popen(["python", "run.py", os.path.basename(__file__).split('.')[0],data], cwd=config.cwd)
                            msgreply = ""
                        else:
                            msgreply = "Approve dulu dari semuanya pembimbing, penguji, koordinator, kaprodi..."
                    else:
                        msgreply = "Approve dulu dari semuanya kedua penguji..."
                    
                except Exception as e: 
                    msgreply = f"Errornya: {str(e)}"
            else:
                msgreply = f"Hayoo siapa kamu"
            
        except Exception as e: 
            msgreply = f'Wadaw.. anda salah keyword... {str(e)}'
        
    else:
        wa.typeAndSendMessage(
            driver, 'Mohon maaf server Akademik SIAP sedang dalam kondisi DOWN, mohon untuk menginformasikan ke ADMIN dan tunggu hingga beberapa menit kemudian, lalu ulangi kembali, terima kasih....')
    return msgreply
Esempio n. 15
0
def replymsg(driver, data):
    if kelas.cekSiap():
        wmsg = reply.getWaitingMessage(
            os.path.basename(__file__).split('.')[0])
        wmsg = wmsg.replace('#BOTNAME#', config.bot_name)
        wa.typeAndSendMessage(driver, wmsg)
        msg = data[3].lower()
        num = data[0]
        nomor = numbers.normalize(num)
        data = msg.split(' ')

        if len(data) == 4:
            try:
                if 'uas' in msg:
                    filename = downloadFile(driver)
                    sleep(2)
                    moveFiles(filename)
                    msgreply = inputNilaiByExcel(filename, 'uas',
                                                 kelas.getTahunID(), nomor)
                    removeFile(filename)
                elif 'uts' in msg:
                    filename = downloadFile(driver)
                    sleep(2)
                    moveFiles(filename)
                    msgreply = inputNilaiByExcel(filename, 'uts',
                                                 kelas.getTahunID(), nomor)
                    removeFile(filename)
                else:
                    msgreply = 'Salah keyword bosque..'
            except FileNotFoundError:
                msgreply = 'Gak ada filenya....'
            except Exception as e:
                msgreply = 'Ada masalah di kodingannya... ' + str(e)
        else:
            try:
                jenis = data[3].lower() if data[3].lower(
                ) == 'uts' or data[3].lower() == 'uas' else False
                if jenis.lower() == 'uts':
                    nilai = data[data.index('uts') + 1] if all(
                        char.isdigit()
                        for char in data[data.index('uts') + 1]) and (
                            int(data[data.index('uts') + 1]) <= 100 and
                            int(data[data.index('uts') + 1]) >= 0) else False
                elif jenis.lower() == 'uas':
                    nilai = data[data.index('uas') + 1] if all(
                        char.isdigit()
                        for char in data[data.index('uas') + 1]) and (
                            int(data[data.index('uas') + 1]) <= 100 and
                            int(data[data.index('uas') + 1]) >= 0) else False

                npm = data[data.index('npm') + 1] if all(
                    char.isdigit()
                    for char in data[data.index('npm') + 1]) else False
                if 'matkul' in data and 'jadwal' not in data:
                    matkul = data[data.index('matkul') + 1] if any(
                        char.isdigit()
                        for char in data[data.index('matkul') + 1]) else False
                    if jenis and nilai and npm and matkul:
                        data = {
                            'tahun': kelas.getTahunID(),
                            'kode_matkul': matkul,
                            'npm': npm,
                            'nilai': nilai,
                            'jadwal': 0
                        }
                        msgreply = inputNilaiByMesssage(data, jenis, nomor)
                    else:
                        msgreply = 'Salah keyword bosque...'
                elif 'jadwal' in data and 'matkul' not in data:
                    jadwal = data[data.index('jadwal') + 1] if any(
                        char.isdigit()
                        for char in data[data.index('jadwal') + 1]) else False
                    if jenis and nilai and npm and jadwal:
                        data = {
                            'tahun': kelas.getTahunID(),
                            'kode_matkul': 0,
                            'npm': npm,
                            'nilai': nilai,
                            'jadwal': jadwal
                        }
                        msgreply = inputNilaiByMesssage(data, jenis, nomor)
                    else:
                        msgreply = 'Salah keyword bosque.............'
                else:
                    msgreply = 'Salah keyword bosque................'
            except:
                msgreply = 'Salah keyword bosque....'
    else:
        msgreply = 'Mohon maaf server Akademik SIAP sedang dalam kondisi DOWN, mohon untuk menginformasikan ke ADMIN dan tunggu hingga beberapa menit kemudian, lalu ulangi kembali, terima kasih....'
    return msgreply