Skip to content

Instantly share code, notes, and snippets.

@craigeley
craigeley / read_later.rb
Last active December 15, 2015 02:14
A simple Ruby script that uses the Readability API to save articles for offline viewing and storage. Create a Readability API key at https://www.readability.com/settings/account
#!/usr/bin/ruby
require 'json'
require 'erb'
require 'open-uri'
# Uncomment these lines if you are having encoding issues on OS X Yosemite
# if RUBY_VERSION =~ /2.0.0/
# Encoding.default_external = Encoding::UTF_8
# Encoding.default_internal = Encoding::UTF_8
@craigeley
craigeley / foursquare_checkin.py
Last active August 29, 2015 14:05
A Pythonista script that logs you into Foursquare. See http://craigeley.com/08-18-2014/foursquare-pythonista/ for more information.
# -*- coding: utf-8 -*-
# To call script, use the follwing URL Action:
# - <pythonista://foursquare_checkin.py?action=run>
# Replace the information in lines 21-23 with your actual client and authorization codes.
import location
import re
import sys
@craigeley
craigeley / foursquare_location_data.rb
Last active December 15, 2015 02:14
Best used with Hazel to grabs location data from the Foursqure API after an IFTTT-generated file changes in your Dropbox.
#!/usr/bin/ruby
# encoding: utf-8
# Grab Foursquare location data from an IFTTT-generated text file
# Because of the Grep searches, this will work best with this recipe: https://ifttt.com/recipes/187849
# Change line 15 with the location of your IFTTT file
# Make sure to change line 25 with your personal client ID and secret generated by Foursquare
# Once you have the data, you can output or write it however you like.
require 'open-uri'
@craigeley
craigeley / batch_pandoc.rb
Created June 11, 2014 15:18
Batch convert files in a folder with Pandoc
#!usr/bin/ruby
# Change the file extensions below with what you are converting from and to
extFrom = '.html'
extTo = '.md'
files = Dir.glob("*#{extFrom}")
name = ''
base = ''
files.each do |file|
@craigeley
craigeley / tasks_to_busy_cal.rb
Last active August 29, 2015 14:00
Allows you to mirror Taskpaper enrties to BusyCal as Reminders
# Mirror TaskPaper Files in BusyCal by Craig Eley 2014
#!/usr/bin/env ruby
# encoding: utf-8
require 'time'
files = Dir["/Users/Path/To/Listacular/*.taskpaper"]
item = ''
due = ''
@craigeley
craigeley / recurring_taskpaper_task.rb
Last active February 28, 2016 18:43
Set this script to run at various times using launchd to automatically add lines to TaskPaper files if they don't exist. A solution for recurring tasks for plain-text task management.
#!/usr/bin/ruby
# Change to your filepath in lines 9 and 12
# Add your exact search term to line 9
# Add your exact to-do in line 13
require 'time'
today = Time.now.strftime('%Y-%m-%d')
if File.readlines('/Users/USERNAME/Dropbox/Listacular/list.taskpaper', encoding: 'UTF-8').grep(/TERM/).any?
exit
@craigeley
craigeley / tasks_to_logbook.rb
Last active August 29, 2015 13:57
This script finds TaskPaper items in a specific folder completed with this format: "@done(yyyy-mm-dd HH:MM)", moves and converts them into Sifttter format, and then deletes them.
#!/usr/bin/env ruby
# encoding: utf-8
require 'time'
files = Dir["/Users/USERNAME/Dropbox/Listacular/*.taskpaper"]
projects = []
found_completed = false
files.each do |file|
-- enabling the next line will delete your current entries so that the creates new ones. I would enable it, but make a backup of your files on first run to be sure.
-- do shell script "rm -rf /Users/Path/to/Files/*.taskpaper"
tell application "Reminders"
set output to ""
repeat with i from 1 to (count of (reminders whose completed is false))
set theReminder to reminder i of (reminders whose completed is false)
set reminderName to name of theReminder
set theList to name of container of theReminder
set dueDate to due date of theReminder
@craigeley
craigeley / hours_to_day_one.rb
Last active August 29, 2015 13:56
Takes a comma separated text file and imports all of the lines into individual day one entries. For more information, see:
#!/usr/bin/ruby
# Reads an hourly log file with comma separated values
# Change the path to your Day One folder on line 43
# Change the path to your text file in line 45
require 'time'
require 'erb'
require 'date'
starred = false
@craigeley
craigeley / insert_location.py
Last active August 29, 2015 13:56
A Pythonista script that simply copies latitude and longitude to the clipboard
# -*- coding: utf-8 -*-
# To call script, use the follwing URL Action:
# - <pythonista://insert_location.py?action=run&argv=nav>
import location
import urllib
import webbrowser
import time
import clipboard