订票助手NET 2019.12.20.17 更新

华盟原创文章投稿奖励计划

本版本主要是一个稳定性更新,与此同时添加了一些新功能。

变更如下:

  1. 对内置票价查询以及候补状态查询进行调整,调整为可选功能且默认关闭,并仅专业版可用;
  2. 增加提交候补订单时,自动默认添加当前查询联系人的功能;
  3. 下线远程打码,并开放远程打码接口(更多参考博客)
  4. 修正当启用服务器加速时,加速成功后登录将始终系统繁忙的问题
  5. 修正在特定情况下,不允许提交订单的问题(距离开车时间近)
  6. 其它细节更新

以下针对上面标红内容简单介绍下。

内置功能调整

订票助手之前版本内置有两大自动化查询功能:自动查询候补状态;自动查询票价。这俩功能虽然比较有用,但是受制于12306提供的接口,这俩功能的实现是基于大量的查询实现的。所以为了稳定性考虑,在此版本中,这俩功能做了如下调整:

  • 增加选项可控制,可以开关,并可调整功能的请求参数
  • 默认不开启
  • 调整为专业版可用(含捐助版、内部版)

选项面板参见如下。

自动草稿

下线远程打码功能,并开放相关接口

为啥要下线远程打码功能?原因很简单,之前集成的UU云以及若快都跪了。

但是又有一部分同学会觉得这是刚需。所以这个版本开放了相关接口,有兴趣也有需要的可以自己实现,方法很简单,分为以下三步。

  1. 新建.NET类库项目,语言不限,名字建议命名为 TOBA.***(即以TOBA.开头),并添加订票助手.NET目录中的 bin下面的TOBA.AutoVc.dll引用
  2. 新建一个自己的服务类,并继承自 AbstractVerifyCodeRecognizeService,实现 IVerifyCodeRecognizeService 接口
  3. 实现必须的功能(登录、查分、通过Image获得代码)
  4. 编译,并将生成的 TOBA.**.dll (文件名必须符合这个格式)复制到订票助手.NET目录下的extensions目录中,再启动订票助手.NET,即可在设置中看到此扩展

例如,如下的一个最简单的例子。

class TestVcService : AbstractVerifyCodeRecognizeService
{
    public TestVcService()
    {
        Author = "木魚(iFish)";
        ErrorCodeQueryUrl = "http://查询错误地址";
        Name = "测试远程打码";
        WebUrl = "http://WEB网址";
        ProviderName = "测试远程打码";
    }
 
    /// <summary>
    /// 加载
    /// </summary>
    public override void Load()
    {
        base.Load();
        Verified = true;
        ErrorCode = 0;
    }
 
    /// <summary>
    /// 登录
    /// </summary>
    /// <returns></returns>
    public override bool DoLogin()
    {
        //执行登录动作,成功返回true
        return true;
    }
 
    /// <summary>
    /// 注销
    /// </summary>
    /// <returns></returns>
    public override bool Logout()
    {
        //执行注销动作,成功返回true
        return true;
    }
 
    /// <summary>
    /// 刷新题分
    /// </summary>
    /// <returns></returns>
    public override bool RefreshScore()
    {
        //刷新题分
        return true;
    }
 
    /// <summary>
    /// 插件ID
    /// </summary>
    public override string Id => "testvc";
 
    /// <summary>
    /// 标记识别结果
    /// </summary>
    /// <param name="result"></param>
    /// <param name="correct"></param>
    public override void MarkResult(IVerifyCodeRecognizeResult result, bool correct)
    {
        //标记结果错误
    }
 
    /// <summary>
    /// 
    /// </summary>
    /// <param name="image"></param>
    /// <returns></returns>
    public override IVerifyCodeRecognizeResult GetCode(Image image)
    {
        //识别图片,失败返回null
        return null;
    }
} 

得到的结果是这样的:

自动草稿

转载自:https://blog.fishlee.net/?p=4555

本文原创,作者:SIREN,其版权均为华盟网所有。如需转载,请注明出处:https://www.77169.net/html/247856.html

发表评论