Skip to content

Instantly share code, notes, and snippets.

View crosstyan's full-sized avatar

Crosstyan crosstyan

View GitHub Profile
@crosstyan
crosstyan / download.py
Created June 21, 2020 06:26
use "http://v.ranks.xin/" api to download videos
from typing import List
import requests
#import json
import re
import os
import asyncio
from contextlib import closing
DOWNLOAD_FOLDER="download_videos"
URL_LIST_FILENAME="url_list.txt"
@crosstyan
crosstyan / app.rb
Last active June 22, 2020 13:29
A example of sinatra with mongodb
require 'mongoid'
require 'sinatra'
require 'json'
#加上:development避免mongoid找不到环境而报错
#预先在"config/mongoid.yml"创建了, 详情见以上链接.
Mongoid.load!(File.join(File.dirname(__FILE__), 'config', 'mongoid.yml'), :development)
#无需声明id字段, mongoid会自动加上
class Post
include Mongoid::Document
@crosstyan
crosstyan / websocket.ts
Last active June 25, 2020 17:52
A websocket based multiroom chat with node.js.
import WebSocket from 'ws'
import mongodb, { ObjectID } from 'mongodb'
import * as querystring from 'querystring'
import {v4 as uuid} from 'uuid'
//Connect to ws://127.0.0.1:8081/thread?name=yourGroupname
//to test the server
interface WsSessionGroup{
id?: ObjectID
@crosstyan
crosstyan / main.go
Last active October 20, 2023 10:17
A websocket based multiroom chat using golang and gin
package main
import (
"log"
"net/http"
"net/url"
"github.com/gin-gonic/gin"
"github.com/google/uuid"
@crosstyan
crosstyan / expressWebsocket.ts
Last active June 27, 2020 09:51
A modified version of https://gist.github.com/crosstyan/8036093d1dbdc1106352a435e95466a3. Combine Express and two websocket server using node http
import WebSocket from 'ws'
import mongodb, { ObjectID } from 'mongodb'
import * as mongoose from 'mongoose'
import { prop, getModelForClass } from '@typegoose/typegoose'
import * as querystring from 'querystring'
import { v4 as uuid } from 'uuid'
import Ajv from 'ajv'
import express from 'express'
import http, { Server } from 'http'
import url from 'url'
@crosstyan
crosstyan / ajv_verify.ts
Last active June 27, 2020 10:36
A gist using ajv to verify JSON
function parsePost(yourDataStr:string) :YourClass|null{
//require你所生成的schema, 不知道为什么用import的时候对json会报错, resolveJsonModule已经开了
const yourSchema=require("./yourSchema")
const ajv = new Ajv({allErrors:true})
//想要快一些应该可以先Compile罢
try {
const yourDataJson = JSON.parse(yourDataStr)
const isValid = ajv.validate(yourSchema,yourDataStr) //return boolean
if (isValid) {
return yourDataJson as YourClass
@crosstyan
crosstyan / HelloController.cs
Last active July 2, 2020 07:48
A basic C sharp web app example
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
namespace MyApp.Controllers {
[ApiController]
//path: "/hello"
//the same as the Controller name
@crosstyan
crosstyan / setting.json
Created September 19, 2020 09:59
Latex Workshop setting for VSCode
// LaTeX
//"latex-workshop.latex.autoBuild.run": "never",
"latex-workshop.message.error.show": true,
"latex-workshop.message.warning.show": false,
//正向搜索
"latex-workshop.view.pdf.internal.synctex.keybinding": "ctrl-click",
"latex-workshop.latex.tools": [
{
"name": "xelatex",
@crosstyan
crosstyan / snippets.json
Last active April 20, 2022 10:07
Snippets of Latex for VSCode
{
"prime":{
"scope": "latex",
"prefix": "prime",
"body": "^\\prime"
},
"par":{
"scope": "latex",
"prefix": "par",
"body": "\\par"
@crosstyan
crosstyan / example.tex
Last active September 19, 2020 11:20
最简单的Latex示例
% 这是注释, 注释不会被解释成代码, 也不会被编译到文章里面
% 这是文档类, 你会看到有人说要用 ctex 文档类(ctexrep), 我觉得无所谓啦, 只要用Xelatex编译就行
\documentclass[a4paper]{report} % 或者用article, 那就没有chapter环境了
% 下面是声明package (一般翻译成「宏包」可是我不觉得这是一个很好的翻译)
% 类似于其他编程语言的导入库 import
% CJK支持, 没它你就显示不了日文中文韩文等
\usepackage{xeCJK}