Last active
June 19, 2018 14:36
-
-
Save freelze/08be6601415b7542037fe07dcff5ce63 to your computer and use it in GitHub Desktop.
Scrape mangakakalot website , telegram you when the mangas update.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// reference:https://github.com/ocordova/gas-telegram-bot , https://github.com/we684123/Telegram_bot_example , http://fu7771.blogspot.com/2017/08/google-script-telegram-bot.html | |
// https://api.telegram.org/botKEY/setWebhook?url=https://... | |
var id = "" | |
var key = "" | |
var sheetID = "" | |
function doPost(e) { | |
var update = JSON.parse(e.postData.contents); | |
// Make sure this is update is a type message | |
if (update.hasOwnProperty('message')) { | |
var msg = update.message; | |
var chatId = msg.chat.id; | |
if (msg.text == '/start') { | |
var _date = new Date(); | |
var SpreadSheet = SpreadsheetApp.openById(sheetID); | |
var Sheet = SpreadSheet.getSheetByName("id"); | |
var LastRow = Sheet.getLastRow(); | |
Sheet.getRange(LastRow+1, 1).setValue(_date); | |
Sheet.getRange(LastRow+1, 2).setValue(String(chatId)); | |
} | |
} | |
} | |
//================================================================= | |
function idGroup() | |
{ | |
var list=[]; | |
var SpreadSheet = SpreadsheetApp.openById(sheetID); | |
var Sheet = SpreadSheet.getSheetByName("id"); | |
var LastRow = Sheet.getLastRow(); | |
for(i=1;i<=LastRow;i++) | |
{ | |
list.push(Sheet.getRange(i, 2).getValue()); | |
} | |
return list; | |
} | |
//================================================================= | |
function sendtext(i,data){ | |
var H = '<b>bold</b>, <strong>bold</strong>\ | |
<i>italic</i>, <em>italic</em>\ | |
<a href="http://www.example.com/">inline URL</a>\ | |
<code>inline fixed-width code</code>\ | |
<pre>pre-formatted fixed-width code block</pre>' | |
var payload = { | |
"method": "sendMessage", | |
'chat_id': i, | |
'text': data | |
} | |
start(payload); | |
} | |
//================================================================= | |
function scrapeManga(mangaName) { | |
var url = "http://mangakakalot.com/manga/" + mangaName; | |
var fromText = '<div class="row"'; | |
var toText = '</div>'; | |
var content = UrlFetchApp.fetch(url).getContentText(); | |
// Need to insert a library(Resources -> Library):M1lugvAXKKtUxn_vdAG9JZleS6DrsjUUV | |
var scraped = Parser | |
.data(content) | |
.from(fromText) | |
.to(toText) | |
.build() | |
var href = Parser | |
.data(scraped) | |
.from('href="') | |
.to('"') | |
.build(); | |
var SpreadSheet = SpreadsheetApp.openById(sheetID); | |
var Sheet = SpreadSheet.getSheetByName(mangaName); | |
var LastRow = Sheet.getLastRow(); | |
var old_href = Sheet.getRange(LastRow, 2).getValue(); | |
var idList=[]; | |
idList = idGroup(); | |
if(old_href != href) // Manga Update | |
{ | |
for(i=0;i<idList.length;i++) | |
{ | |
sendtext(idList[0],href); | |
} | |
var d = new Date(); | |
Sheet.getRange(LastRow + 1, 1).setValue(d); | |
Sheet.getRange(LastRow + 1, 2).setValue(href); | |
} | |
} | |
//================================================================= | |
function mangaName() | |
{ | |
var manga_Name = ["Beastars","tomochan_wa_onnanoko","nidoume_no_jinsei_wo_isekai_de"]; | |
for(i in manga_Name) | |
{ | |
scrapeManga(manga_Name[i]); | |
} | |
} | |
//===================================以下是標準發送跟記下Log================================================== | |
function start(payload) { | |
var data = { | |
"method": "post", | |
"payload": payload | |
} | |
var d = new Date(); | |
var SpreadSheet = SpreadsheetApp.openById(sheetID); | |
var Sheet = SpreadSheet.getSheetByName("紀錄發送的訊息"); | |
var LastRow = Sheet.getLastRow(); | |
Sheet.getRange(LastRow + 1, 1).setValue(d); | |
Sheet.getRange(LastRow + 1, 3).setValue(data); | |
var returned = UrlFetchApp.fetch("https://api.telegram.org/bot" + key + "/", data); | |
Sheet.getRange(LastRow + 1, 2).setValue(d); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment