Skip to content

Instantly share code, notes, and snippets.

View haoflynet's full-sized avatar
🤔
Puzzled

haofly haoflynet

🤔
Puzzled
View GitHub Profile
@haoflynet
haoflynet / BCConvert.java
Last active October 19, 2020 02:31
Java DFA sensitive words filter Java实现的敏感词过滤(支持停顿词/重复词/全半角/字符串替换,改进https://www.jb51.net/article/128990.htm)
package com.haofly.net.sensitiveword;
public class BCConvert {
/**
* ASCII表中可见字符从!开始,偏移位值为33(Decimal)
*/
static final char DBC_CHAR_START = 33; // 半角!
@haoflynet
haoflynet / LaravelCustomSoftDeletes.php
Last active September 14, 2018 07:18
替换Laravel deleted_at为NULL的默认行为,使deleted_at不能为NULL
<?php
/**
* 覆盖Laravel默认的SoftDeletingScope,用于替换软删除的默认行为,解决deleted_at必须为NULL的问题,为NULL的时候不能设置唯一键
* 即默认是whereNull更改为判断timestamp的0值,即'0000-00-00 00:00:00'(空字符串在某些数据库版本也是可以的,但是考虑到兼容性还是写全吧),以使deleted_at字段不为NULL
* 使用时只需要把之前Model中的`use SoftDeletes`替换为`use LaravelCustomSoftDeletes`即可
* 请自行替换本文件中的部分命名空间
*/
namespace Common;
@haoflynet
haoflynet / graphene-sqlalchemy-example
Created August 14, 2018 09:33
graphene-sqlalchemy使用示例,教程见https://haofly.net/python-graphql
import graphene
from graphene import String
from graphene_sqlalchemy import SQLAlchemyObjectType, SQLAlchemyConnectionField
from promise import Promise
from promise.dataloader import DataLoader
from sqlalchemy import Column, BigInteger, ForeignKey
from sqlalchemy.orm import relationship
from db import Base, db_session # 这里自己去定义
@haoflynet
haoflynet / qiniu_sync.py
Created June 28, 2018 00:04
qiniu-for-static-web-hosting 同步文件夹至七牛云
from qiniu import Auth, put_file, etag, urlsafe_base64_encode, BucketManager
from typing import List, Dict
import os
from qiniu import build_batch_delete
class Sync:
"""
同步目录至七牛云
import re
def mycmp(version1, version2):
def normalize(v):
return [int(x) for x in re.sub(r'(\.0+)*$','', v).split(".")]
return cmp(normalize(version1), normalize(version2))
if __name__ == '__main__':
assert mycmp("1", "1") == 0
assert mycmp("2.1", "2.2") < 0
@MrYoda
MrYoda / views.py
Last active June 16, 2023 05:03
Python 3, Django 1.9+: Excel file creation and send on-the-fly with XlsxWriter & BytesIO
import xlsxwriter
from io import BytesIO
from django.http import StreamingHttpResponse
from django.views.generic import View
def get_foo_table_data():
"""
Some table data
"""
@kevinkindom
kevinkindom / Python Socket 编程详细介绍.md
Last active November 16, 2024 07:28
Python Socket 编程详细介绍

Python Socket 编程详细介绍

Python 提供了两个基本的 socket 模块:

  • Socket 它提供了标准的BSD Socket API。
  • SocketServer 它提供了服务器重心,可以简化网络服务器的开发。

下面讲解下 Socket模块功能。

Socket 类型

# coding: utf-8
# author: haofly
#
# fun: 生成随机姓名、随机电话号码、随机字符串,目前仅支持Python2
import random
def generateName(first_len=0, last_len=0):
surnames = [
window.onload=function(){
var mobileAgent = new Array("iphone", "ipod", "ipad", "android", "mobile", "blackberry", "webos", "incognito", "webmate", "bada", "nokia", "lg", "ucweb", "skyfire");
var browser = navigator.userAgent.toLowerCase();
for (var i=0; i<mobileAgent.length; i++){
if (browser.indexOf(mobileAgent[i])!=-1){
alert(mobileAgent[i]);
break;
}
}
}
@justjavac
justjavac / img2txt.js
Last active December 9, 2021 06:46
img2txt:基于canvas的图片转字符画工具
var cv = document.getElementById('cv');
var c = cv.getContext('2d');
var txtDiv = document.getElementById('txt');
var fileBtn = document.getElementById("up-button");
var img = new Image();
img.src = 'a.jpg';
img.onload = init; // 图片加载完开始转换
fileBtn.onchange = getImg;
// 根据灰度生成相应字符