Skip to content

Instantly share code, notes, and snippets.

@witnessmenow
Last active June 4, 2020 09:43
Show Gist options
  • Save witnessmenow/bf36964bb2a693f7de94fc77cf6387ba to your computer and use it in GitHub Desktop.
Save witnessmenow/bf36964bb2a693f7de94fc77cf6387ba to your computer and use it in GitHub Desktop.
// 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