月度归档: 2017 年 4 月

  • 快速生成.gitignore文件

    快速生成.gitignore文件

    当新启动一个项目的时候,特别是项目会托管到GIT仓库的时候我们一般会选择添加.gitignore文件。

    gitignore可以手动添加,但是随着语言,IDE工具,框架的变动,创建.gitignore也越发复杂了,经常会漏掉一些东西。

    这里有一个网站可以帮助生成gitignore文件: https://www.gitignore.io/

     

    …

  • sited(多多猫)插件开发

    最近看漫画有点多,因为各种各样的原因各个网站的漫画都不全,好不容易找到一个好用的,估计服务器不在大陆,速度特别慢。但是又只有网页版本,自然没有各种缓存,离线 下载功能了。

    本来寻思自己写一个,但是在知乎看到一个推荐多多猫的,就简单尝试了一下,果然不要自己造轮子呀。

    多多猫这个app本身是没有任何内容的,它只是一个插件容器,内容来源是需要插件实现的。而插件的标准(?)名为sited,是xml格式,具体代码实现是javascript。简单来说文档是有的,而且只找到了一份官方的,可以看出有些内容并没有及时更新,但是照着做一个还是没有问题的。

    简单来说一下这个漫画网站的结构,主页就是一个列表,每个漫画有分页,一页10张图,一般一个漫画200张左右,就是一个没有目录结构的顺序图集。

    先来看看插件大体格式

    <?xml version="1.0" encoding="utf-8"?>
    <sited ver="1" debug="0" engine="32" schema="1">
        <meta>
            <title>XXX漫画</title>
            <encode>utf-8</encode>
            <ua>Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87
                Safari/537.36
            </ua>
        </meta>
        <main dtype="4" durl="xxx">
            <home>
                <hots cache="10m" title="首页" method="get" parse="hots_parse" url="xxx" 
    …
  • BT种子文件转二维码

    自从入手小米路由器以来,下载电影就只选择最大的了,因为路由器下载可以在白天上班时间下载,而且夜间也可以,下载完成还可以用手机或者电视播放。

    小米路由器APP端支持扫码下载和手动添加任务,当然手机上添加BT种子挺麻烦的,所以我一般用扫描二维码,好在很多下载站都提供了二维码。二维码中一般是种子的下载地址或者磁力链。但是偶尔会遇到只有种子文件的情况,所以就需要想个办法来转化成为二维码。

    最终效果在这里:https://to-qr.herokuapp.com/

    简单的地方就跳过了,比如如何上传文件,显示二维码这些,这里只关注两个问题。

    1. BT文件转磁力链接
    2. 磁力链接转二维码

    BT文件转磁力链接

    磁力链接中最关键的内容就是info hash,这个值可以轻松从BT文件中解析。

    具体原理可以参考BT种子文件结构。这里使用ttorrent-core库。

    package com.huangyunkun.service;
    
    import com.turn.ttorrent.common.Torrent;
    import org.apache.commons.io.FileUtils;
    import org.springframework.stereotype.Service;
    
    import java.io.File;
    import java.io.IOException;
    import java.security.NoSuchAlgorithmException;
    
    @Service
    public class TorrentService {
        public String getLink(File file) throws IOException, NoSuchAlgorithmException {
            Torrent torrent = 
    …