使用 Wine 在 Docker 容器中运行 酷Q Air / Pro

docker-wine-coolq 可以使你通过 Wine 在 Docker 容器中运行 酷Q Air 或 酷Q Pro。

即使该 dockerfile 仓库使用 GPL 发布,其中下载的软件仍然遵循其最终用户使用许可协议,请确认同意协议后再进行下载使用。

随着版本更新,wine 的 酷Q 并不保证总是可用。若你遇到不可用问题,在严格按照下述步骤执行后仍可复现,请 提交 issue 或在 社区 反馈。

1. 如何食用(使用)

首先,安装 Docker,详情查看:https://nowtime.cc/linux/481.html 如何安装

1-1. 安装完成后,执行以下命令:

docker pull coolq/wine-coolq
mkdir coolq && cd coolq
docker run --rm -p 9000:9000 -v `pwd`:/home/user/coolq coolq/wine-coolq

即可运行一个 wine-coolq 实例。运行后,访问 http://你的IP:9000 可以打开一个 VNC 页面,输入 MAX8char 作为密码后即可看到一个 酷Q Air 已经启动。


酷Q 和其数据文件会保存在容器内的 /home/user/coolq 文件夹下,映射到主机上则为上述命令第二步创建的文件夹。调整 -v 的参数可以改变主机映射的路径。

2. 环境变量

在创建 docker 容器时,使用以下环境变量,可以调整容器行为。

  • VNC_PASSWD 设置 VNC 密码。注意该密码不能超过 8 个字符。

  • COOLQ_ACCOUNT 设置要登录 酷Q 的帐号。在第一次手动登录后,你可以勾选“快速登录”功能以启用自动登录,此后, docker 容器启动或 酷Q 异常退出时,便会自动为你登录该帐号。

  • COOLQ_URL 设置下载 酷Q 的地址,默认为 http://dlsec.cqp.me/cqa-tuling,即 酷Q Air 图灵版。请确保下载后的文件能解压出 酷Q Air/CQA.exe酷Q Pro/CQP.exe

GitHub:https://github.com/CoolQ/docker-wine-coolq

Android 执行 Shell 命令 | JAVA 执行 Shell 命令

    public static String execCMD(String command) {
        StringBuilder sb =new StringBuilder();
        try {
            Process process=Runtime.getRuntime().exec(command);
            BufferedReader bufferedReader=new BufferedReader(new InputStreamReader(process.getInputStream()));
            String line;
            while((line=bufferedReader.readLine())!=null)
            {
                sb.append(line+"\n");
            }
        } catch (Exception e) {
            return e.toString();
        }
        return sb.toString();
    }

Visual Studio Code(VSCODE)设置语言为中文

默认情况下,Visual Studio Code 会拾取操作系统的显示语言,如果是不支持的语言环境,则使用英文(US)。

1. 安装中文(简体)语言包

链接:https://marketplace.visualstudio.com/items?itemName=MS-CEINTL.vscode-language-pack-zh-hans

1-1. 进入该网页后,点击页面中的“Install”按钮,然后不出意外会弹出一个对话框,如下图所示

QQ截图20181117083725.png

1-2. 如上图所示,打开 Visual Studio Code 后,会跳转到这个页面,然后你点击 Install 进行安装

QQ截图20181117083848.png

2. 设置

2-1. 等待语言包安装完成后,按 Ctrl + Shift + P,输入 Configure Display Language,然后按回车

[W_[2Z{6[F~NKS2GDVT0M$V.png

- 阅读剩余部分 -

PHP 获取 QQ群 bkn 参数

由于项目需求,需要获得 QQ 群成员的信息,所以便使用 Google 找到了这个开源项目:

GitHub 项目地址:https://github.com/nasaplayer/getCurrentQQGroupList

由于我只需要 bkn 的计算代码,所以我就提取出来了

这个计算方法的位置在:https://github.com/nasaplayer/getCurrentQQGroupList/blob/master/v3/getCurrentQQ.class.php
第 177 行
<?php

$skey = '@ziDp00luu';//这个 skey 总知道获取吧,不再累述
echo getBkn($skey);//正常的话,输出的是:500891986

//计算 bkn
function getBkn($skey) {
    $hash = 5381;
    for ($i = 0, $len = strlen($skey); $i < $len; ++$i){
        $hash +=($hash << 5) + charCodeAt($skey, $i);

    }
    return $hash & 2147483647;
}

function charCodeAt($str, $index){
    $char = mb_substr($str, $index, 1, 'UTF-8');
    $value = null;
    if (mb_check_encoding($char, 'UTF-8')){
        $ret = mb_convert_encoding($char, 'UTF-32BE', 'UTF-8');
        $value = hexdec(bin2hex($ret));
    }
    return $value;
}

JavaScript 获取地址栏 URL 相关信息汇总

下面以这个 URL 为例:

https://nowtime.cc/index.php?user=admin&passwd=admin

1. window.location.href 获取整个 URL 为字符串

$href = window.location.href;

console.log($href);//控制台 输出 https://nowtime.cc/index.php?user=admin&passwd=admin
alert($href);//返回 https://nowtime.cc/index.php?user=admin&passwd=admin

2. window.location.protocol 获取 URL 的协议部分

$protocol = window.location.protocol;

console.log($protocol );//控制台 输出 https:
alert($protocol );//返回 https:

3. window.location.host 获取 URL 的主机名部分

$host = window.location.host;

console.log($host);//控制台 输出 nowtime.cc
alert($host);//返回 nowtime.cc

4. window.location.port 取与 URL 关联的端口号码

$port = window.location.port;

console.log($port);
alert($port);

//返回:空字符(如果采用默认的80端口、添加了 :80),那么返回值并不是默认的80而是空字符)

5. window.location.pathname 获取与 URL 的路径部分

$pathname = window.location.pathname;

console.log($pathname);//控制台 输出 index.php
alert($pathname);//返回 index.php

6. window.location.search 获取 href 属性中跟在问号后面的部分

$search = window.location.search;

console.log($search);//控制台 输出 ?user=admin&passwd=admin
alert($search);//返回 ?user=admin&passwd=admin

7. window.location.hash 获取 href 属性中在井号“#”后面的部分

$hash = window.location.hash;

console.log($hash);
alert($hash);

//返回:空字符串,因为 URL 中没有