Skip to content

Instantly share code, notes, and snippets.

View rcknr's full-sized avatar

Sergii Kauk rcknr

View GitHub Profile
@rcknr
rcknr / gist:1043690
Created June 23, 2011 21:34
Quick add event to Calendar using GData
// Set the feed URL
var EVENT_FEED_URL = 'http://www.google.com/calendar/feeds/default/private/full';
// Create a calendar object
var calendarService = new google.gdata.calendar.CalendarEventEntry();
// Create a new event handler
var quickEvent = new google.gdata.calendar.CalendarEventEntry();
// Create a new property handler and set it to true
@rcknr
rcknr / gist:3306363
Created August 9, 2012 17:43
Update Twitter avatar with Apps Script
function oAuthConfig() {
var oAuthConfig = UrlFetchApp.addOAuthService("twitter");
oAuthConfig.setAccessTokenUrl("http://api.twitter.com/oauth/access_token");
oAuthConfig.setRequestTokenUrl("http://api.twitter.com/oauth/request_token");
oAuthConfig.setAuthorizationUrl("http://api.twitter.com/oauth/authorize");
// Register an app at https://dev.twitter.com/apps/new to get the following key and secret
oAuthConfig.setConsumerKey("PUT CONSUMER KEY HERE");
oAuthConfig.setConsumerSecret("PUT CONSUMER SECRET HERE");
}
@rcknr
rcknr / Code.gs
Created August 30, 2012 08:35
Apps Script Release Notes RSS Feed
function getFeed() {
var cache = CacheService.getPublicCache();
var cachedFeed = cache.get("gas-relnotes-feed");
if(cachedFeed == null) {
var URL = "https://developers.google.com/apps-script/release_notes";
var feedSize = 25;
var data = UrlFetchApp.fetch(URL).getContentText();
@rcknr
rcknr / Tweetsheets
Created November 22, 2012 16:57 — forked from johannesnagl/Tweetsheets
Use Twitter directly in your Google Doc, so no one will ever blame you for being social
function authorize_(method) {
var oauthConfig = UrlFetchApp.addOAuthService("twitter");
oauthConfig.setAccessTokenUrl("https://api.twitter.com/oauth/access_token");
oauthConfig.setRequestTokenUrl("https://api.twitter.com/oauth/request_token");
oauthConfig.setAuthorizationUrl("https://api.twitter.com/oauth/authorize");
oauthConfig.setConsumerKey(UserProperties.getProperty("CONSUMER_KEY"));
oauthConfig.setConsumerSecret(UserProperties.getProperty("CONSUMER_SECRET"));
return {
oAuthServiceName: "twitter",
@rcknr
rcknr / Viewer.gs
Created December 16, 2012 23:03
ScriptDb Viewer for Apps Script allows to inspect the contents of ScriptDb, run queries and sort stored objects. Works with scripts attached to a spreadsheet but can be also converted into a web app.
function showDbViewer() {
var DbViewer = UiApp.createApplication().setTitle('ScriptDb Viewer');
// Query field and button
DbViewer.add(
DbViewer.createHorizontalPanel().setVerticalAlignment(UiApp.VerticalAlignment.MIDDLE).add(
DbViewer.createTextBox().setText("{}").setId("query").setName("query"))
.add(
DbViewer.createButton("Query", DbViewer.createServerHandler("queryDb")
.addCallbackElement(DbViewer.getElementById("query")))
@rcknr
rcknr / DriveCommenter.gs
Created December 24, 2012 13:59
An example of using Drive API v2 in Apps Script. This will add "commenter" permission to a specified file. Note that not all types of documents support this permission type. To use this you need to create a project in API Console, enable Drive API in Services and get the API key.
function fileAddCommenter() {
authorize();
var fileId = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"; // <-- id of the document
var key = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"; // <-- developer key
var requestBody = {
role: "reader",
type: "user",
value: "someone@somewhere.com",
additionalRoles: ["commenter"]
};
@rcknr
rcknr / Translate.gs
Created December 29, 2012 18:47
Google Apps Script wrapper for Translate API Limitations: - Doesn't return detectedSourceLanguage when called without source parameter; - Doesn't support prettyprint parameter; - Reduced error messages that return HTTP 200 status; - Doesn't support key parameter and billing ;)
function doGet(r) {
var translations = [];
var e = {error:{code:400}};
try {
if(r.parameters.q) {
for(var n in r.parameters.q) {
translations.push({translatedText:
LanguageApp.translate(
r.parameters.q[n],
(r.parameters.source)?r.parameters.source:null,
@rcknr
rcknr / DriveUpload.gs
Last active February 15, 2023 20:06
This is a sample code to upload a PDF file to Google Drive with OCR in Apps Script. uploadPdfOcr function returns a File object. To run the code provide a developer key for an API Console project with Drive API service enabled.
function uploadPdfOcr() {
authorize();
var key = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"; // <-- developer key
var file = UrlFetchApp.fetch("http://somewhere.com/path/file.pdf").getBlob();
var metadata = { title: file.getName() }
var params = {method:"post",
oAuthServiceName: "drive",
oAuthUseToken: "always",
contentType: "application/pdf",
contentLength: file.getBytes().length,
@rcknr
rcknr / urlencode.sh
Created January 8, 2013 21:39
Simplistic URL encoding for Busybox shell.
#!/bin/sh
echo "$@" | awk -v ORS="" '{ gsub(/./,"&\n") ; print }' | while read l;
do
case "$l" in
[-_.~a-zA-Z0-9] ) echo -n ${l} ;;
"" ) echo -n %20 ;;
* ) printf '%%%02X' "'$l"
esac
done
@rcknr
rcknr / add2books.html
Created May 30, 2013 08:27
Add PDF and EPUB files from your Google Drive to Google Books.
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
<title>Add to Google Books</title>
<script src="//www.google.com/jsapi"></script>
<script src="//apis.google.com/js/client.js"></script>
<script type="text/javascript">