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
| const { getSubtitles } = require('youtube-captions-scraper'); | |
| const getYouTubeID = require('get-youtube-id'); | |
| const getYouTubeSubtitles = async youtubeUrl => { | |
| try { | |
| const videoID = getYouTubeID(youtubeUrl); | |
| const subtitles = await getSubtitles({ videoID }); | |
| return subtitles.reduce( | |
| (accumulator, currentSubtitle) => | |
| `${accumulator} ${currentSubtitle.text}`, |
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
| export const getURLparams = () => { | |
| const pl = /\+/g; | |
| const search = /([^&=]+)=?([^&]*)/g; | |
| const decode = s => decodeURIComponent(s.replace(pl, ' ')); | |
| const query = window.location.search.substring(1); | |
| const urlParams = {}; | |
| let match; | |
| while ((match = search.exec(query))) { | |
| urlParams[decode(match[1])] = decode(match[2]); |
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
| const xml = require('xml'); | |
| module.exports = app => { | |
| //processes the webhook for when a new invoice is created | |
| app.post('/webhooks/new-invoice', async (req, res) => { | |
| try { | |
| // debugging | |
| console.log(req.body); | |
| const { name, verifier, object_id } = req.body; |
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
| sudo apt-get update | |
| sudo apt-get install software-properties-common | |
| sudo add-apt-repository ppa:certbot/certbot | |
| sudo apt-get update | |
| sudo apt-get install python-certbot-nginx |
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
| const moment = require('moment'); | |
| const someAction = () => console.log('Actioning...'); | |
| const wait = ms => new Promise((resolve, reject) => setTimeout(resolve, ms)); | |
| const startCron = async () => { | |
| while (true) { | |
| if ( | |
| moment().date() === |
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
| const tweetnacl = require('tweetnacl'); // https://github.com/dchest/tweetnacl-js | |
| tweetnacl.util = require('tweetnacl-util'); // https://github.com/dchest/tweetnacl-util-js | |
| // utility function to display the Uint8Array | |
| const asciiArmored = arr => tweetnacl.util.encodeBase64(arr); | |
| // generate the key to encrypt a message | |
| const secretKey = tweetnacl.randomBytes(32); | |
| console.log(`secret key: ${asciiArmored(secretKey)}`); |
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
| const moment = require('moment-timezone'); // https://momentjs.com/timezone/ | |
| const timestamp = new Date(); | |
| console.log( | |
| moment(timestamp) | |
| .tz('America/Vancouver') // find your zone here https://momentjs.com/timezone/docs/#/data-loading/getting-zone-names/ | |
| .format('dddd, MMMM Do YYYY, h:mm:ss a (UTC Z)') | |
| ); |
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
| NODE_ENV=production | |
| PATH=/root/.nvm/versions/node/v8.11.1/bin:$PATH | |
| @reboot cd /var/server/script-directory && /root/.nvm/versions/node/v8.11.1/bin/forever start myscript.js |
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
| # renew_before_expiry = 30 days | |
| version = 0.19.0 | |
| archive_dir = /etc/letsencrypt/archive/my-domain.com | |
| cert = /etc/letsencrypt/live/my-domain.com/cert.pem | |
| privkey = /etc/letsencrypt/live/my-domain.com/privkey.pem | |
| chain = /etc/letsencrypt/live/my-domain.com/chain.pem | |
| fullchain = /etc/letsencrypt/live/my-domain.com/fullchain.pem | |
| # Options used in the renewal process | |
| [renewalparams] |
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
| server { | |
| listen 80 default_server; | |
| listen [::]:80 default_server; | |
| server_name my-server.com www.my-server.com; | |
| return 301 https://$server_name$request_uri; | |
| } | |
| server { | |
| # SSL configuration | |
| listen 443 ssl http2 default_server; |