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
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
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
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
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
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
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
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
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
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