Uses wernight/docker-youtube-dl Docker image.
-
Provide a newline (
\n
) separated list of Youtube video IDs (likeM7XM597XO94
) or URLs (likehttps://www.youtube.com/watch?v=M7XM597XO94
) in a txt file. -
Allow execution for the script file:
Uses wernight/docker-youtube-dl Docker image.
Provide a newline (\n
) separated list of Youtube video IDs (like M7XM597XO94
) or URLs (like https://www.youtube.com/watch?v=M7XM597XO94
) in a txt file.
Allow execution for the script file:
Resources: | |
SamDeployUser: | |
Type: AWS::IAM::User | |
Properties: | |
UserName: sam-deploy-user | |
Path: "/" | |
Policies: | |
- PolicyName: allow-sam-deploy-access | |
PolicyDocument: | |
Version: "2012-10-17" |
#!/bin/bash | |
machine_hostname=$(hostname -s) | |
while read line; do | |
if [[ $line == *"$machine_hostname sshd:"* ]] | |
then | |
user=$(echo $line | sed -e 's/.*sshd:\(.*\)\[priv.*/\1/' | tr -d '[:space:]') | |
process=$(echo $line | sed -e 's/.*USER_PROCESS:\(.*\)tty.*/\1/' | tr -d '[:space:]') | |
logger -p 5 -t "ssh-login-notify" -s "ssh-login-notify: user \"$user\" (process: \"$process\")" | |
osascript -e "display notification \"user: $user\nprocess: $process\" with title \"SSH Login: $user\"" | |
fi |
# get files (also hidden ones with dot prefix) | |
files = Dir.glob("{**/*}", File::FNM_DOTMATCH) | |
# Remove folders from array as (git)ignore doesn't care about empty folders | |
files = files.reject { |f| File.directory?(f) } | |
# Remove .ebignore itself | |
files = files.reject { |f| f == '.ebignore' } | |
# Read the .ebignore file |
local ret_status="%(?:%{$fg_bold[green]%}➜ :%{$fg_bold[red]%}➜ )" | |
PROMPT='${ret_status} %{$fg[cyan]%}%c%{$reset_color%} $(git_prompt_info)' | |
local italics=$'%{\e[3m%}' | |
ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg_bold[blue]%}git:(%{$fg[red]%}${italics}" | |
ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%} " | |
ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[blue]%}) %{$fg[yellow]%}✗" | |
ZSH_THEME_GIT_PROMPT_CLEAN="%{$fg[blue]%})" |
// base styles | |
atom-workspace, | |
atom-text-editor { | |
font-family: "Operator Mono SSm"; | |
font-size: 13px; | |
font-weight: 400; | |
line-height: 1.7; | |
} |
#!/bin/bash | |
# Should be used until https://github.com/webpack/watchpack/pull/23 is merged and available in npm | |
# See https://github.com/webpack/watchpack/issues/2#issuecomment-135204573 for more info | |
# Ensure we have npm | |
if ! hash npm 2>/dev/null; then | |
echo 'No NPM installed!' | |
exit 1 | |
fi |
(function(w) { | |
try { | |
var isHttps = w.location.protocol === "https:"; | |
var hasSniSupport = true;//we default to true | |
var ua = window.navigator.userAgent; | |
var isInternetExplorerOnWinXpOrOlder = /MSIE.*Windows\s?((NT)?\s?(([0-5]\.\d))|XP|98|95|NT;)/i.test(ua); | |
var isAndroid3XorOlder = /Android [0-3]\./i.test(ua); | |
var isSymbian = /(SymbianOS|Series40|Series60)/i.test(ua); | |
var isBlackBerry = /BlackBerry/i.test(ua); |
// 1. Scroll down the list members page: | |
// https://twitter.com/:username/lists/:slug/members | |
// ProTip™: keep holding down page down button and wait until you reach the end/bottom of the list | |
// 2. Paste this to dev tools console | |
var nodeListOfUsers = document.querySelectorAll('#timeline .username'); | |
var listOfUsernames = Array.prototype.slice.call(nodeListOfUsers).map((node) => node.innerText); | |
// 3. now you got the list members in array at listOfUsernames variable | |
// make sure it's length equals the members amount visible in Twitter website |
function getTitles(optionalTrimPrefix) { | |
var elems = document.querySelectorAll('#playlist-autoscroll-list .playlist-video-description h4.yt-ui-ellipsis-2'); | |
var titles = []; | |
for (i = 0; i < elems.length; i++) { | |
var text = elems[i].textContent; | |
var title = optionalTrimPrefix ? text.substr(optionalTrimPrefix.length) : text; | |
if(title) titles.push(title); | |
} |