Skip to content
This repository has been archived by the owner on Jun 16, 2020. It is now read-only.

Commit

Permalink
Merge pull request #11 from bgli/glitch
Browse files Browse the repository at this point in the history
Glitch
  • Loading branch information
suciptoid committed Aug 15, 2017
2 parents 92faeca + 7297470 commit 2634835
Show file tree
Hide file tree
Showing 6 changed files with 271 additions and 12 deletions.
33 changes: 33 additions & 0 deletions .viminfo
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
# This viminfo file was generated by Vim 7.4.
# You may edit it if you're careful!

# Value of 'encoding' when this file was written
*encoding=utf-8


# hlsearch on (H) or off (h):
~h
# Command Line History (newest to oldest):
:q

# Search String History (newest to oldest):

# Expression History (newest to oldest):

# Input Line History (newest to oldest):

# Input Line History (newest to oldest):

# Registers:

# File marks:
'0 147 0 ~/commands.js

# Jumplist (newest first):
-' 147 0 ~/commands.js
-' 1 0 ~/commands.js

# History of marks within files (newest to oldest):

> ~/commands.js
" 147 0
4 changes: 4 additions & 0 deletions bot.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
const Telegraf = require('telegraf')
const TelegrafWit = require('telegraf-wit')
const commands = require('./commands')
const firebase = require('./middleware/firebase')

const bot = new Telegraf(process.env.TOKEN)
const wit = new TelegrafWit(process.env.WIT)
Expand All @@ -10,6 +11,9 @@ bot.telegram.setWebhook('https://bglibot.glitch.me/webhook')

bot.use(Telegraf.memorySession())

// Firebase Middleware
bot.use(firebase.middleware)

// Handle Message
bot.on('message', (ctx, next) => {

Expand Down
136 changes: 128 additions & 8 deletions commands.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
const config = require('./config');
const fs = require('fs')
const moment = require('moment-timezone')
const firebase = require('./middleware/firebase')

var commands = {

Expand All @@ -12,11 +15,17 @@ var commands = {
-1001084078003 // GIMPSCAPE Testing
],

rumahMiranda : [
-1001034868528, // BGLI
],

controlGroup : [
-1001085483555
],

handleMessage(ctx) {

console.log(ctx)

if (ctx.updateType == 'message') {

Expand All @@ -33,7 +42,7 @@ var commands = {
break

case 'left_chat_member':
console.log(ctx)
console.log(ctx.message)
break

}
Expand Down Expand Up @@ -69,13 +78,30 @@ var commands = {
let group = ctx.chat

ctx.replyWithHTML(`Selamat datang ${member.first_name} 😊`)
.then((response)=>{
console.log(response)
firebase.logMessage(response)
})

},

handleGroupText(ctx) {
//console.log(ctx.update)
//console.log(ctx.message)

let message = ctx.message.text

// Filtering Group
if(this.rumahMiranda.indexOf(ctx.message.chat.id) == -1){

// Command list that only work for known group
let commandList = ['!rules','!report','!kulgram','!simpan']

if(commandList.indexOf(ctx.message.text) != -1){
ctx.replyWithHTML('Aku lagi dimana ini? 😰\n<b>#diculik</b>')
return
}

}

switch (message) {
case "!rules":
Expand All @@ -90,11 +116,19 @@ var commands = {
case "!ping":

ctx.replyWithMarkdown('*Pong!!!* 🙄',{'reply_to_message_id':ctx.message.message_id})
.then((response)=>{
console.log(response)
firebase.logMessage(response)
})

break

case "!source":
ctx.replyWithHTML('Kepoin kita dong sist, buka repo github ini <a href="https://github.com/bgli/bglibot-js">bgli/bglibot-js</a>')
.then((response)=>{
console.log(response)
firebase.logMessage(response)
})
break;

case "!members":
Expand All @@ -104,6 +138,10 @@ var commands = {
ctx.getChatMembersCount()
.then((data) => {
ctx.replyWithMarkdown(`*Jumlah Anggota*: ${data}`,{'reply_to_message_id':ctx.message.message_id})
.then((response)=>{
console.log(response)
firebase.logMessage(response)
})
})

break
Expand All @@ -114,32 +152,85 @@ var commands = {

let idToReply = ctx.message.reply_to_message.message_id
ctx.replyWithMarkdown('Kirimkan _Screenshot_ biar lebih jelas gan!',{'reply_to_message_id':idToReply})
.then((response)=>{
console.log(response)
firebase.logMessage(response)
})

}

break

case "!kulgram":

// Only allow mimin
let isAdmin = false

if(this.pawang.indexOf(ctx.message.from.id) == -1){
console.log("Non pawang 🙄")
isAdmin = false
}else{
isAdmin = true
}

if(isAdmin){

if(ctx.session.kuliah){
ctx.session.kuliah = false
ctx.reply("#kulgram selesai 😇")

let fileName = `./storage/kulgram-${moment().tz("Asia/Jakarta").format('YYYYMMDD')}.txt`

fs.open(fileName, "r", function(error, data) {
console.log(data);

//ctx.telegram.sendDocument(ctx.message.chat.id,data)

});

}else{
ctx.session.kuliah = true
ctx.reply("#kulgram dimulai, yay 🤷‍")
}

}else{
ctx.reply("Kuliah libur 😋")
}


break;

case "!report":

//console.log(ctx.message)

if(ctx.message.reply_to_message){

let idToReply = ctx.message.reply_to_message.message_id
ctx.replyWithMarkdown('👮 Terimakasih laporanya 👮 ',{'reply_to_message_id':idToReply})
ctx.replyWithMarkdown('👮 Terimakasih laporannya 👮 ',{'reply_to_message_id':idToReply})
.then((response)=>{
console.log(response)
firebase.logMessage(response)
})
ctx.telegram.sendMessage(
'-1001102321498', // Admin BGLI Group
`👮 <b>Laporan Post !</b>\n\nReport by: <b>${ctx.message.from.first_name}</b>\nMessage : <a href="https://t.me/${ctx.chat.username}/${idToReply}">Reported Message</a>`,
`👮 <b>Laporan Post !</b>\n\n ${ctx.message.reply_to_message.from.first_name} ${ctx.message.reply_to_message.from.username ? '(@'+ctx.message.reply_to_message.from.username+')':''} : ${ctx.message.reply_to_message.text}\n\nReport by: <b>${ctx.message.from.first_name}</b>\nMessage : <a href="https://t.me/${ctx.chat.username}/${idToReply}">Reported Message</a>`,
{'parse_mode':'HTML'}
)

}else{
ctx.replyWithMarkdown('Post mana yang mau dilaporkan? 😕')
.then((response)=>{
console.log(response)
firebase.logMessage(response)
})
}

break

case "!simpan":

console.log(ctx.message)
//console.log(ctx.message)

if(ctx.message.reply_to_message){

Expand All @@ -157,13 +248,20 @@ var commands = {
ctx.telegram.sendMessage('@BGLIArsip',bookmark,{parse_mode:'HTML'})

ctx.replyWithMarkdown('Sip, #bookmark sudah diarsipkan 💾\nCheck [disini](https://t.me/BGLIArsip)',{'reply_to_message_id':ctx.message.message_id})
.then((response)=>{
console.log(response)
firebase.logMessage(response)
})
}
}

break

default:
this.handleManual(ctx);

// Logger
this.handleLogger(ctx);
break;

}
Expand All @@ -172,6 +270,7 @@ var commands = {

handlePrivate(ctx) {
//return ctx.replyWithHTML('Tidak menerima Pesan Pribadi untuk saat ini, <b>Maaf yaa!</b>')

},

handleManual(ctx){
Expand All @@ -182,13 +281,13 @@ var commands = {

// Only Allow from list Manual Group
if(this.manualSource.indexOf(ctx.message.chat.id) == -1){
console.log("Bukan dari group whitelist manual, Skip!")
//console.log("Bukan dari group whitelist manual, Skip!")
return
}

// Only allow mimin
if(this.pawang.indexOf(ctx.message.from.id) == -1){
console.log("Non pawang 🙄")
//console.log("Non pawang 🙄")
}else{
isAdmin = true
}
Expand Down Expand Up @@ -230,9 +329,30 @@ var commands = {

}

console.log(`Manual mode? ${config.manual}`)
//console.log(`Manual mode? ${config.manual}`)
//console.log(`Kuliah mode? ${ctx.session.kuliah}`)

//ctx.telegram.sendMessage('-1001085483555', `From: ${ctx.chat.title}\nMsg ID:${ctx.message.message_id}\nMessage: ${ctx.message.text}`)
},

handleLogger(ctx){
if(ctx.session.kuliah){

//console.log(ctx.message)

let fileName = `./storage/kulgram-${moment().tz("Asia/Jakarta").format('YYYYMMDD')}.txt`
let logMessage = `${moment.unix(ctx.message.date).tz("Asia/Jakarta").format('YY-MM-DD hh:mm:ss')}: ${ctx.message.from.first_name} > ${ctx.message.text}\n`

console.log(logMessage)

fs.appendFile(fileName, logMessage, function (err) {
if (err) throw err;
console.log('Log Saved!');
});

}else{
//console.log('LOGER: Sedang tidak kuliah')
}
}


Expand Down
6 changes: 6 additions & 0 deletions main.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@ var app = express()
app.use(express.static('public'))
app.use(parser.json())

//app.use(bot.webhookCallback('/webhook'))

app.get('/', (request, response) => {
response.sendFile(__dirname + '/views/index.html')
})
Expand All @@ -15,11 +17,15 @@ app.post('/webhook', (request, response) => {

let body = request.body

//console.log(request.body)

bot.handleUpdate(body, response.sendStatus(200))

})




var listener = app.listen(3000, ()=>{
console.log('Running...')
})
Loading

0 comments on commit 2634835

Please sign in to comment.