Skip to content

Instantly share code, notes, and snippets.

View libook's full-sized avatar
🎵
Never Gonna Give You Up~

Daniel Li libook

🎵
Never Gonna Give You Up~
View GitHub Profile
/**
* A helper module for AngularUI Router, which allows you to define your states as an object tree.
* @author Mark Lagendijk <mark@lagendijk.info>
* @license MIT
*/
+function(){
angular.module('ui.router.stateHelper', [ 'ui.router' ])
.provider('stateHelper',['$stateProvider', function($stateProvider){
var self = this;
@libook
libook / complement.js
Last active August 29, 2015 14:17 — forked from r3b/complement.js
// returns things in array 'a' that are not in array 'b'
// > ['a','b','c','1', '2', '3'].complement(['b', 'c', 'd', 'e']);
// ['a', '1', '2', '3']
function complement(a, b){
(b)||(b=a, a=this);
return (Array.isArray(a) && Array.isArray(b))
? a.filter(function(x){return b.indexOf(x)===-1;})
: undefined;
}
Array.prototype.complement=complement;
@libook
libook / 0_0read-line-and-insert.js
Last active April 28, 2017 09:14
Read file by line and batch insert documents into MongoDB.
'use strict';
const mongoUrl = 'mongodb://my-db-address:27017';// MongoDB connection URL.
const filePath = 'id.list';// This must be Unix/Linux ID list file.
const limit = 100;// Buffer this number of documents. Then do insert.
const dbName = 'myDB';// DB name.
const collectionName = 'myCollection';// Collection name.
const MongoDB = require('mongodb');
const MongoClient = MongoDB.MongoClient, assert = require('assert');
@libook
libook / 0
Last active December 10, 2020 10:41
@libook
libook / aliyun-workorder-crawler.js
Last active July 19, 2017 05:30
爬自己阿里云账号中的所有工单记录,再进行分析。
function getQuestionListUrl(index) {
return 'https://workorder.console.aliyun.com/json/page/query_index.json?__preventCache=' + (new Date()).getTime() + '&currentPage=' + index + '&page=' + index + '&pageSize=100&status=';
}
function getQuestions() {
let questions = [];
for (let p = 1; p <= 4; p++) {
let url = getQuestionListUrl(p);
$.ajax({
url,
@libook
libook / letsencrypt-nginx.service
Created July 23, 2017 17:05
Systemd service for Let's Encrypt.
[Unit]
Description=Renews letsencrypt certificates
After=network.target
[Service]
Type=oneshot
WorkingDirectory=/etc/letsencrypt
ExecStart=/usr/bin/certbot renew --quiet --agree-tos --pre-hook "systemctl stop nginx.service" --post-hook "systemctl restart nginx.service"
@libook
libook / 0_0build-spigot.sh
Last active May 5, 2018 07:33
Building Spigot, Bukkit and Craftbukkit server for Minecraft.
#!/bin/sh
# Use common shell. Or edit this for whatever shell you love.
# This is for building Spigot server for Minecraft game.
# This is a common script. You can use this directly, or customize for your own.
# Require Java 8+ and Git.
curl -z BuildTools.jar -o BuildTools.jar https://hub.spigotmc.org/jenkins/job/BuildTools/lastSuccessfulBuild/artifact/target/BuildTools.jar &&
java -jar BuildTools.jar
# Or add --dev for building development version Spigot:
@libook
libook / runService.sh
Created July 24, 2017 06:27 — forked from Chunlin-Li/runService.sh
项目启动脚本 (10.8.8.8 使用)
#!/usr/bin/env bash
ProjectName="sundries" # 项目名称
Port=3030 # 服务监听端口 , 通过设置 NODE_PORT 环境变量实现
CleanNodeModules=true # 是否每次都清除 node_modules
NodeVersion=8.1.2 # node 版本, 需确保 nvm 有该版本
Restart=true # 是否每次都重启服务
if [[ -e $1 ]]; then
@libook
libook / github-latest-release.sh
Last active May 3, 2018 15:51 — forked from 0xadada/github-latest-release.sh
Download latest GitHub project release
#!/bin/zsh
for url in `curl --silent https://api.github.com/repos/$1/releases/latest | awk '/browser_download_url/ { print $2 }' | sed 's/"//g'`
do
echo $url
curl -LOk $url
done
@libook
libook / shadowsocks-server.service
Created August 8, 2017 03:50 — forked from guyskk/shadowsocks-server.service
shadowsocks server systemd service
[Unit]
Description=Shadowsocks Server
After=network.target
[Service]
ExecStart=/usr/local/bin/ssserver -c /etc/shadowsocks/ss-config.json
Restart=on-abort
[Install]
WantedBy=multi-user.target