Skip to content

Instantly share code, notes, and snippets.

Avatar
🏠
I may be slow to respond.

Daniel Worrall Daniel-Worrall

🏠
I may be slow to respond.
View GitHub Profile
@Daniel-Worrall
Daniel-Worrall / github_location.rb
Created May 13, 2017
Get list of user locations from github star list in Ruby
View github_location.rb
require "github_api"
require "csv"
github = Github.new basic_auth: 'login:password'
users = github.activity.starring.list(user: 'username', repo: 'repo', auto_pagination: true)
CSV.open("users.csv", "wb") do |csv|
csv << ["User", "Location"]
users.each { |user| csv << [user.login, github.search.legacy.users(user.login).body.users[0].location] }
end
@Daniel-Worrall
Daniel-Worrall / crystal.rb
Created Jun 13, 2017
Crystal Project of a lot of mini projects from a list, from Ruby
View crystal.rb
require 'fileutils'
file = File.open('list.txt', 'r')
File.open('shard.yml', 'w') do |f1|
f1.puts "name: 100projects\nversion: 0.1.0\n\nauthors:\n - <>\n\ntargets:\n"
while line = file.gets
filename = line.strip.gsub(/[^\w\.]/, '_').downcase
f1.puts " #{filename}:\n main: src/#{filename}/main.cr"
FileUtils::mkdir_p "src/#{filename}"
File.new "src/#{filename}/main.cr", 'w'
View gist:bb38d1fcae501336a7d747b70b03adae
### Keybase proof
I hereby claim:
* I am daniel-worrall on github.
* I am dworrall (https://keybase.io/dworrall) on keybase.
* I have a public key ASAo7lE1O6SGkZcOx0Se7O3xMib9j4QBgQKOaNg8n_2fWAo
To claim this, I am signing this object:
@Daniel-Worrall
Daniel-Worrall / discord-custom.css
Last active Jul 30, 2019
Discord Double Width Server List
View discord-custom.css
.wrapper-1Rf91z {
width: 130px !important;
}
.wrapper-1Rf91z .scrollerWrap-2lJEkd {
width: 148px;
}
.scroller-2TZvBN {
padding-left: 0px;
}
.scroller-2TZvBN > div[class=""] {
@Daniel-Worrall
Daniel-Worrall / backup.rb
Last active Jul 30, 2019
Backup all named local volumes on docker
View backup.rb
folder_name = "" # Dir.pwd
volumes = %x`docker volume ls`
arr = []
volumes.scan(/local\s*(\w*)/) { |x| arr << x[0] }
arr.reject!{ |x| x =~ /^[0123456789abcdef]+$/ }
arr.each do |volume_name|
p %x`docker run --rm -v #{volume_name}:/volume_data -v #{folder_name}:/backup ubuntu tar cvf /backup/#{volume_name}.tar /volume_data`
end
@Daniel-Worrall
Daniel-Worrall / Console
Created Sep 10, 2019
Link Header Parsing Crystal Lang
View Console
crystal ./src/test.cr --release
{"hub" => "https://api.twitch.tv/helix/webhooks/hub",
"self" => "https://api.twitch.tv/helix/users/follows?first=1&from_id=1337"}
{"hub" => "https://api.twitch.tv/helix/webhooks/hub",
"self" => "https://api.twitch.tv/helix/users/follows?first=1&from_id=1337"}
{"hub" => "https://api.twitch.tv/helix/webhooks/hub",
"self" => "https://api.twitch.tv/helix/users/follows?first=1&from_id=1337"}
{"hub" => "https://api.twitch.tv/helix/webhooks/hub",
"self" => "https://api.twitch.tv/helix/users/follows?first=1&from_id=1337"}
1 325.74k ( 3.07µs) (± 7.74%) 2.16kB/op 2.30× slower
View twist.cr
class Anime
include JSON::Serializable
property id : Int32
property title : String
property alt_title : String?
property season : Int32
@[JSON::Field(converter: BoolConverter)]
property ongoing : Bool
property hb_id : Int32?
@[JSON::Field(converter: TimeConverter)]
View config.yml
version: 2
jobs:
build:
working_directory: ~/<%= config.name %>
docker:
- image: crystallang/crystal:latest
steps:
- checkout
- restore_cache:
key: dependency-cache-{{ checksum "shard.lock" }}
View gist:f3e1bd81b74bbf843d0ad5784f5c05ff
day = 12
suffix = case {day % 10, day % 100}
when {.==(1), .!=(11)}
"st"
when {.==(2), .!=(12)}
"nd"
when {.==(3), .!=(13)}
"rd"
else
@Daniel-Worrall
Daniel-Worrall / twist.moe.cr
Created Jun 21, 2020
Unencryption for video links on twist.moe
View twist.moe.cr
require "openssl"
data = ""
KEY = "LXgIVP&PorO68Rq7dTx8N^lP!Fa5sGJ^*XK"
cipher = OpenSSL::Cipher.new("aes-256-cbc")
encrypted = Base64.decode_string(data)
salt = encrypted.to_slice[8, 8]
my_data = KEY + String.new(salt)