This file contains 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
.chat-lines { | |
font-size: 14px; | |
} |
This file contains 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 tmi = require('tmi.js'), | |
request = require('request'), | |
countdown = require('countdown'), | |
kraken = request.defaults({ | |
baseUrl: 'https://api.twitch.tv/kraken/', | |
json: true, | |
headers: { | |
'Client-ID': '', | |
Accept: 'application/vnd.twitchtv.v3+json' |
This file contains 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 _request = require('request'), | |
_ = require('lodash'), | |
tmi = require('tmi.js'), | |
clc = require('cli-color'), | |
config = require('./config.json'), | |
yourChannel = config.yourChannel || '', | |
identity = config.identity || {}, |
This file contains 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
//... | |
client.on('message', (channel, user, message, fromSelf) => { | |
// Ignore bot's messages. | |
if(fromSelf) { | |
return false; | |
} | |
// The name of the user. (Will default to the lower case if the display name | |
// is missing from the user object.) |
This file contains 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 tmiParse = require('tmi.js/lib/parser'); | |
const escapedIRCRegex = /\\([sn:r\\])/g; | |
const ircEscapedChars = { s: ' ', n: '', ':': ';', r: '' }; | |
const booleanTagKeys = [ 'mod', 'subscriber', 'msg-param-should-share-streak' ]; | |
const integerTagKeys = [ | |
'tmi-sent-ts', 'msg-param-months', 'msg-param-cumulative-months', | |
'msg-param-streak-months', 'msg-param-sender-count', | |
'msg-param-mass-gift-count', 'msg-param-viewerCount', 'msg-param-threshold', | |
'msg-param-bits-amount', 'msg-param-min-cheer-amount', |
This file contains 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
'use strict'; | |
const tmi = require('tmi.js'), | |
timerMessages = [], | |
config = { | |
identity: { | |
username: '', | |
password: '' |
This file contains 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
/** | |
* How long to wait in milliseconds if Twitch is taking too long to respond with | |
* all of the gifts. | |
*/ | |
const MYSTERYGIFT_TIMEOUT_MS = 10 * 1000; | |
/** | |
* How long to wait in milliseconds if the detected gift sub is not part of a | |
* larger mystery gift initially. | |
*/ | |
const GIFTSUB_ORPHAN_TIMEOUT_MS = 2 * 1000; |
This file contains 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
{"version":2,"type":"profile","profile":{"id":7,"name":"Coding Garden","hotkey":null,"pause_updates":null,"description":"Commands for CodingGarden","context":[{"id":"5b66b0d5-0d11-4d41-af47-4d4ef92047db","type":"Channel","data":{"login":"codinggarden","id":"413856795"}}]},"toggled":true,"values":{"chat.actions.room":[{"t":"inherit","id":"1657045451549-0.39029851003637184-0"},{"v":{"action":"chat","appearance":{"type":"image","text":"Topic","image":"https://sfo2.digitaloceanspaces.com/alca/static/f/cj/Timer_Start_opt.png","tooltip":"!focus-start"},"options":{"command":"!focus-start 30","paste":true},"display":{}},"id":"1657042750748-0.43892151947400904-0"},{"v":{"action":"chat","appearance":{"type":"image","text":"Topic","image":"https://sfo2.digitaloceanspaces.com/alca/static/f/cj/Timer_Stop_opt.png","tooltip":"!focus-end"},"options":{"command":"!focus-end","paste":false},"display":{}},"id":"1657047049848-0.7201918069457542-1"}]}} |
This file contains 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 fs = require("fs/promises"); | |
const fileName = "input.txt"; | |
async function readInput(fileName) { | |
const file = await fs.readFile(fileName, "utf-8"); | |
return file.trim().replace(/\r/g, "").split("\n"); | |
} | |
async function solveFirst(fileName) { | |
const inputs = await readInput(fileName); |
This file contains 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
<!DOCTYPE html> | |
<html> | |
<head> | |
<meta charset="utf-8"> | |
<title>BTTV Emotes Gist</title> | |
<script src="https://code.jquery.com/jquery-2.1.4.min.js"></script> | |
<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js"></script> | |
<script src="https://d2g2wobxbkulb1.cloudfront.net/0.0.18/tmi.min.js"></script> | |
<script src="js/main.js"></script> | |
</head> |