Skip to content

Instantly share code, notes, and snippets.

Avatar

Kevin kevinl95

View GitHub Profile
@kevinl95
kevinl95 / feels like.js
Created Nov 25, 2018
How to calculate a 'Feels-Like' temperature using OpenWeatherMaps
View feels like.js
var http = require( 'http' );
var url = 'http://api.openweathermap.org/data/2.5/weather?zip=<YOURZIP>,us&units=imperial&APPID=<YOURAPPID>';
http.get( url, function( response ) {
var data = '';
response.on( 'data', function( x ) { data += x; } );
View password result.layout.html
<layout mode="Details">
<match>
PasswordResult (r)
</match>
<content>
<layout-macro id="common:card">
<title>Your New Password</title>
<titleSize>large</titleSize>
<bodyText>{{r.Password}}</bodyText>
</layout-macro>
View PasswordResult.dialog.bxb
dialog (Result) {
match {
PasswordResult(this) {
from-output: generate(numWords)
}
}
template ("I generated a memorable, secure password for you using common english words:")
}
View NumWords.dialog.bxb
dialog (Concept) {
match {
// Look for this type
NumWords
}
// Use the following template text with this type
template("Number of Words")
}
View PasswordResult.model.bxb
structure (PasswordResult) {
description (The resulting password from the generate action.)
property (Password) {
description (The resulting password string from the generator.)
type (Password)
min (Required)
max (One)
}
property (length) {
description (The number of words used.)
View numWords.bxb
integer (NumWords) {
description (The number of number of words to use in the password.)
}
View bixbyaction.bxb
action (generate) {
collect{
input (numWords) {
type (NumWords)
min (Required)
max (One)
// add a default value of four words, like the comic
default-init {
intent {
goal {NumWords}
View bixbyendpoints.bxb
endpoints {
authorization {
none
}
action-endpoints {
action-endpoint (generate) {
accepted-inputs (numWords)
local-endpoint ("generator.js")
}
}
@kevinl95
kevinl95 / generator.js
Created Nov 8, 2018
The generator for my Bixby tutorial.
View generator.js
// Correct Horse Battery Staple
// An implementation of the XKCD password algorithm https://xkcd.com/936/
// The idea behind this generator is that randomized passwords are easy to guess
// and difficult to remember, while a password composed of four english words is
// both easy to remember and difficult to guess. This capsule adds the ability
// to generate such passwords to Bixby.
// Main entry point
function generate(numWords) {
@kevinl95
kevinl95 / extract_pdf_attachments.py
Created Jul 8, 2018
Demonstration of how to extract attachments from PDF files using Python 3 and PyPDF2.
View extract_pdf_attachments.py
import PyPDF2
def getAttachments(reader):
"""
Retrieves the file attachments of the PDF as a dictionary of file names
and the file data as a bytestring.
:return: dictionary of filenames and bytestrings
"""
catalog = reader.trailer["/Root"]