Last active
June 4, 2020 09:43
-
-
Save witnessmenow/bf36964bb2a693f7de94fc77cf6387ba to your computer and use it in GitHub Desktop.
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
// Create a new google Sheet, go to Tools -> Script Editor | |
// Info for setting it up on a timer here: | |
// https://www.quora.com/How-can-I-periodically-run-a-Google-Script-on-a-Spreadsheet | |
//If you don't want to use Telegram, just comment out line 38 | |
function pullJSON() { | |
//var ss = SpreadsheetApp.getActiveSpreadsheet(); | |
//var sheets = ss.getSheets(); | |
//var sheet = ss.getActiveSheet(); | |
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Tindie Orders"); | |
var API_KEY = 'MY_API_KEY' | |
var USER_NAME = 'my_tindie_user' | |
var SHIPPED = 'false' | |
var URL = 'https://www.tindie.com/api/v1/order/?format=json' | |
+ '&username=' + USER_NAME | |
+ '&api_key=' + API_KEY | |
+ '&shipped=' + SHIPPED | |
var response = UrlFetchApp.fetch(URL, {'muteHttpExceptions': true}); | |
var dataAll = JSON.parse(response.getContentText()); // | |
var dataSet = dataAll.orders; | |
var rows = [], | |
data; | |
var newOrders = []; | |
for (i = 0; i < dataSet.length; i++) { | |
data = dataSet[i]; | |
if(!orderExists(data.number)){ | |
rows.push([generateURL(data.number), data.shipping_country, data.date, data.shipping_service, data.number]); //your JSON entities here | |
sendTelegram(data.number, data.shipping_country) | |
} | |
} | |
if(rows.length > 0){ | |
sheet.insertRows(2, rows.length); | |
dataRange = sheet.getRange(2, 3, rows.length, 5); // Second Row, 3rd Col, length, 5 cols long | |
dataRange.setValues(rows); | |
} | |
} | |
function generateURL(orderID){ | |
var orderURL = 'https://www.tindie.com/orders/' + orderID; | |
return '=HYPERLINK("' + orderURL + '", "' + orderID + '")'; | |
} | |
function sendTelegram(orderId, country){ | |
var TELEGRAM_TOKEN = 'GET_BOT_TOKEN_FROM_BOT_FATHER'; | |
var TELEGRAM_CHAT_ID = '-12356743'; //Chat ID of person or group the bot should send the message | |
var telegramUrl = 'https://api.telegram.org/bot' + TELEGRAM_TOKEN + '/sendMessage'; | |
var data = { | |
'chat_id': TELEGRAM_CHAT_ID, | |
'text': 'New Order from ' + country + ' (' + orderId + ')' | |
}; | |
var options = { | |
'method' : 'post', | |
'muteHttpExceptions': true, | |
'contentType': 'application/json', | |
// Convert the JavaScript object to a JSON string. | |
'payload' : JSON.stringify(data) | |
}; | |
UrlFetchApp.fetch(telegramUrl, options); | |
} | |
function orderExists(orderNumber) { | |
var ordersColumn = 'G' | |
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Tindie Orders"); | |
var column = sheet.getRange(ordersColumn + "2:" + ordersColumn); // like A:A | |
var values = column.getValues(); | |
var row = 0; | |
while ( values[row] && values[row][0] !== orderNumber ) { | |
row++; | |
} | |
if (values[row] && values[row][0] === orderNumber) | |
return true; | |
else | |
return false; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment