Kateridge's Blog


  • 首页

  • 归档
  • GitHub E-Mail Twitter steam

部署hitokoto一言api

发表于 2018-03-03

一言-hitokoto 是什么

​ 先放上官方的链接 一言网 ,

​ 一句话服务,简单说就是随机选取一句话展现出来,效果图。

​ 1

需要做什么

  • 部署接口

    在网站根目录新建hitokoto文件夹,然后在文件夹里新建 index.php 文件

    代码如下:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    <?php
    $path = dirname(__FILE__);
    $file = file($path."/hitokoto.txt"); #hitokoto.txt为语句文件
    $arr = mt_rand( 0, count( $file ) - 1 ); #随机选取一行
    $content = trim($file[$arr]);
    if (isset($_GET['charset']) && !empty($_GET['charset'])) {
    $charset = $_GET['charset'];
    if (strcasecmp($charset,"gbk") == 0 ) {
    $content = mb_convert_encoding($content,'gbk', 'utf-8');
    }
    } else {
    $charset = 'utf-8';
    }
    header("Content-Type: text/html; charset=$charset");
    if ($_GET['format'] === 'js') {
    echo "function hitokoto(){document.write('" . $content ."');}";
    } else {
    echo $content;
    }
  • 获取语句文件(hitokoto.txt)

    在 一言网 爬取 语句文件

    一言网 api的请求地址为:https://v1.hitokoto.cn/

    根据官方提供的文档,返回默认为json格式,各参数如下.

    3

    选择需要的分类(tpye),将id和正文(hitokoto)分别保存下来,避免重复。

    代码如下,请前往 此处 下载 (说起来这好像是我写的第一个爬虫…)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
import requests
import argparse
import json
import time

L=[]

#读取已经存在的hitokoto,避免重复
def loadFromfile():
global L
with open('id.txt','r') as f:
idcount=0;L=[]
for line in f:
L.append(line)
idcount+=1
print(str(idcount)+" hitokoto loaded")

#将内容写入文件,content为内容,file为地址
def writeTofile(content,file):
with open(file,'a',encoding='utf-8') as f:
f.write(content+'\n')


def gethitokoto(amount,delay):
count=0
loadFromfile()
while count < amount:
r=requests.get('https://v1.hitokoto.cn/')
#hitokoto.cn上的一些json格式是错误的,会报错然后脚本终止,用try..except跳过
try:
hitokoto_json=r.json()
except json.decoder.JSONDecodeError as e:
continue
#选取需要的分类
if (hitokoto_json['type'] == 'a' or hitokoto_json['type'] == 'b' or hitokoto_json['type'] == 'c' or hitokoto_json['type'] == 'd'):
if hitokoto_json['id'] in L:
continue
count += 1
if hitokoto_json['from']!='':
content=hitokoto_json['hitokoto']+'---《'+hitokoto_json['from']+'》' #加上破折号和书名号
else:
content=hitokoto_json['hitokoto'] #有些hitokoto没有from
writeTofile(str(hitokoto_json['id']),'id.txt')
writeTofile(content,'hitokoto.txt')
time.sleep(delay) #请求间隔

#传入命令行参数
def parseArguments():
parser = argparse.ArgumentParser()
parser.add_argument("-a", help="counts of request", type=int)
parser.add_argument("-d", help="delay between each request in second", type=float, default=0.5)
if not parser.parse_args().a:
print("Missing arguments.\nUsing: python hitokoto.py --help for more information")
exit(1)
return parser.parse_args()

args = parseArguments()
gethitokoto(args.a,args.d)
print(str(args.a)+" hitokoto is successfully added to hitokoto.txt")

命令行运行示例

1
python hitokoto.py -a <amount of the hitokoto> -d <delay>

脚本会在相应目录下生成id.txt 和hitokoto.txt 文件

将hitokoto.txt 文件放入之前创建的hitokoto文件夹内

  • 调用部署好的接口

    将下面两行代码添加到博客你想显示一言的位置

    1
    2
    <script type="text/javascript" src="https://你的域名/hitokoto/?format=js&charset=utf-8"></script>
    <div id="hitokoto"><script>hitokoto()</script></div>

参考链接

老D博客-给博客加上 Hitokoto·一言经典语句

写了个一言爬虫–Blessing Studio

Requests: 让 HTTP 服务人类

python文件的IO操作

argparse-python之旅

用chevereto搭建自己的图床

发表于 2018-02-14

前言

​ 需要用markdown写作的小伙伴们肯定需要图床(反正我不想把所有图片都放在本地),现在比较流行的图床是七牛云,微博等等,但是微博不一定稳定,七牛云需要实名认证 (懒得拍身份证),在do还有一台vps,就想着用chevereto(一个php网络相册脚本程序)搭建自己的图床。

你需要

​ 一台准备好web环境的vps

正文

​ 1、部署好你的web环境

(此处我安利一下自己感觉比较好用的面板–Appnode ,界面看起来挺舒服的,免费版的基础功能也都齐全,够基本的需求了。下文对参数的修改皆通过Appnode)

  • 注意1、在php.ini中将程序请求外部网络权限打开,否则等一下安装的时候会出现“No php 1 permission”类似的错误

    netpermission

  • 注意2、在php.ini中将php上传限制改到合适的范围,否则你的图床默认最大只允许上传1m的图片

    maxupload

    ​

    ​

    2、去官网下载安装文件,根据他的提示完成安装

    我使用的是chevereto-free (希望有经济能力的朋友多多支持正式版)

    另外网络上有流传的破解版,建议大家不要选择破解版(听说如果在国外的vps上装了破解的chevereto,官方会 查到然后联系你的vps提供商强制停机,至于国内的vps嘛…….虽然不会发生这种事但还是不建议用破解的嘛)

    安装过程的话我就简单贴一下官网的步骤,这点简单的洋文大家肯定能看懂的。

setep

  • 注意

    Chevereto 默认提供基于 Apache 环境的伪静态规则,但是使用 Nginx 的小伙伴(没错就是我)可能会出现神秘的错误,导致无法继续安装。(为什么说是神秘的错误呢,因为我忘记截图了)

    这时候去设置以下Rewrite规则即可:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    # Image not found replacement
    location ~* (jpe?g|png|gif) {
    log_not_found off;
    error_page 404 /content/images/system/default/404.gif;
    }

    # CORS header (avoids font rendering issues)
    location ~ \.(ttf|ttc|otf|eot|woff|woff2|font.css|css|js)$ {
    add_header Access-Control-Allow-Origin "*";
    }

    # Pretty URLs
    location / {
    try_files $uri $uri/ /index.php?$query_string;
    }
    location /admin {
    try_files $uri /admin/index.php?$args;
    }

在Appnode中设置伪静态也比较方便

rewrite

3、设置网站

他的详细设置在 仪表盘-设置 里面(当时我还找了好久……)

settings

开始上传你的图片并获取它的外链吧

imggggg

完

参考链接

Chevereto Nginx 伪静态Rewrite规则-老季博客

Github学生包的申请

发表于 2018-02-08

写在前面

Github Education 提供的 Student Developer Pack 包含了一系列开发工具,免费提供给通过认证的学生使用,我主要看上了里面Digitalocean的50刀代金券。不过里面还有很多有用的工具,比如ATOM、github无限制私有仓库、Travis CI,游戏开发引擎Unreal等等。

Github学生包申请

申请地址

登陆你的github账号,点击get your pack

完善你的信息并提交

  • 注意

    select your school-issued email address 一栏应该选择 i don’t have a school-issued email

    因为国内很多edu邮箱是不能通过验证的(我用edu邮箱就失败了),这时上传一张你的学生证照片即可。

    lalala

然后过一段时间(0-2天左右)你就能收到github education的邮件了

记我在MSC的第一次Hackathon

发表于 2018-02-08

写在前面

  • Hackathon,编程马拉松,详见wikipedia(这个词条没被墙,我一直以为维基全站被墙了…..).

  • MSC ,微软学生技术俱乐部,详见点我点我!.

    怎么说呢,第一次hackathon还是让人挺激动的。由于技术有限,整个过程就是在和组员们一起摸爬滚打,从零开始学这个,从零开始学那个,还真正意义上通了宵(确实没怎么睡)。下文会简单介绍展示一下这次活动的过程 (其实就是放照片啦)。

正文

​ 这学期考完试我们学校的msc组织了这次hackathon活动,活动持续了大约三十多个小时.

​ 整个过程分为三个部分。

​ 第一部分我们需要构思项目,并简单讨论方案,时间为四个小时;

​ 第二部分我们需要做出demo,实现核心功能,时间为八个小时;

​ 第三部分我们需要完成项目,并做一个完整的presentation,时间为十六个小时;

​ 活动中还有学长扮演天使投资人+导师,指导我们项目的推进,提升项目的‘市值’,最终市值高的团队获胜。

照骗

  • 活动场地

1

  • 伙食(原谅我拍出了shi的颜色)

2

  • 忙碌的小伙伴们

3

4

  • 我已经是个废人了.jpg

我已经是个废人了

6

  • 合照(无耻的把自己码掉了)

7

Hello World

发表于 2018-02-08

background

​ 断断续续地总算把博客建好了,之前也用过 wordpress 和 typecho 之类的博客引擎,然而因为某些不可描述的原因 (懒得备份数据+vps到期) ,再加上朋友的安利,最后换到了 hexo .

​ 由于寒假在家实在闲得慌,每天吃饭睡觉打游戏,决定近期好好打理一下博客,写点东西,体现一蛤当代大学森蓬勃向上的优秀品质.

Kateridge

Kateridge

5 日志
GitHub E-Mail Twitter steam
© 2018 Kateridge
由 Hexo 强力驱动
|
主题 — NexT.Gemini v5.1.4