MiraiForum

    • 注册
    • 登录
    • 搜索
    • 热门
    • 最新
    • 未解决
    • 标签
    • 群组
    • 友情链接
    1. 主页
    2. lngex
    • 资料
    • 关注 0
    • 粉丝 0
    • 主题 2
    • 帖子 7
    • 最佳 0
    • 有争议的 0
    • 群组 0

    lngex

    @lngex

    0
    声望
    2
    资料浏览
    7
    帖子
    0
    粉丝
    0
    关注
    注册时间 最后登录

    lngex 取消关注 关注

    lngex 发布的最新帖子

    • 发送文件时不能出现字符 ":"

      我在Windows上运行的程序,所以在文件路径上必有 “:”,如
      C:;请问有没有什么办法解决

          /**
           * 发送视频文件
           * @param group 群
           * @param url 视频超链接
           * @return 当前消息链
           */
          public Msg video(Group group, String url) {
              File file = new File("E:\\bot\\video", System.currentTimeMillis() + ".mp4");
              // 下载文件到file
              HttpClientUtils.getFile(url,file);
              this.messageChainBuilder.append(group.getFiles().uploadNewFile(file.getPath(),ExternalResource.create(file)).toMessage());
              return this;
          }
      

      错误信息:
      java.lang.IllegalArgumentException: Chars ':*?"<>|' are not allowed in path. RemoteFile path contains illegal char: ':'. path='E:\bot\video\1657074806337.mp4'

      发布在 开发交流
      lngex
      lngex
    • RE: 求助,Mirai-http-api 2.4.0是否不支持视频消息的接收

      @wyapx 支持发送吗

      发布在 HTTP API和第三方SDK
      lngex
      lngex
    • RE: 自定义滑块或者在登陆时会一直循环调用滑块处理

      @Karlatemp 有没有优雅一点的解决方案

      发布在 开发交流
      lngex
      lngex
    • RE: 自定义滑块或者在登陆时会一直循环调用滑块处理

      @Karlatemp

          /**
           * 处理滑动验证码.
           * 返回 null 以表示无法处理验证码, 将会刷新验证码或重试登录. 抛出一个 LoginFailedException 以正常地终止登录, 抛出任意其他 Exception 将视为异常终止
           * Returns:
           * 验证码解决成功后获得的 ticket.
           */
          @SneakyThrows
          @Override
          public Object onSolveSliderCaptcha(@NotNull Bot bot, @NotNull String s, @NotNull Continuation<? super String> continuation) {
              return SliderCaptchaWindows.instance(s).assembly().show(true);
          }
      
      /**
       * 滑块验证码处理窗口
       *
       * @author LiaoJianbo
       * @version 1.0.0
       * @CreateTime: 2022-06-27  11:23
       * @since 1.0.0
       */
      @Data
      @Accessors(chain = true)
      public class SliderCaptchaWindows {
      
          /**
           * 窗体容器
           */
          public Container contentPane;
          /**
           * 窗口
           */
          private JFrame windows;
          /**
           * 滑块链接
           */
          private String url;
          /**
           * 滑块结果
           */
          private String ticket;
          /**
           * 单击结果
           */
          private Boolean isClick = false;
      
          private SliderCaptchaWindows() {
      
          }
      
          /**
           * 获取实例
           *
           * @param url 滑块年纪额
           * @return 当前对象
           */
          public static SliderCaptchaWindows instance(String url) {
              JFrame windows = new JFrame("滑块处理");
              SliderCaptchaWindows sliderCaptchaWindows = new SliderCaptchaWindows()
                      .setWindows(windows).setContentPane(windows.getContentPane())
                      .setUrl(url);
              windows.setSize(1000, 160);
              windows.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
              windows.setLayout(null);
              windows.setResizable(false);
              return sliderCaptchaWindows;
          }
      
          public static void main(String[] args) {
              System.out.println(SliderCaptchaWindows.instance("www.baidu.com").assembly().show(true).ticket());
          }
      
          /**
           * 窗口状态
           *
           * @param visible true开启,false关闭
           */
          public SliderCaptchaWindows show(boolean visible) {
              windows.setVisible(visible);
              return this;
          }
      
          public SliderCaptchaWindows assembly() {
              // 标签
              JLabel tis = new JLabel("复制’滑块‘到浏览器,按F12打开控制台,电子network->HXR,拖动滑块,查看响应,复制ticket到ticket");
              contentPane.add(tis);
              tis.setBounds(5, 5, 1000, 20);
              // url
              JLabel urllabel = new JLabel("滑块");
              contentPane.add(urllabel);
              urllabel.setBounds(5, 30, 30, 20);
              JTextField jTextField = new JTextField(this.url);
              contentPane.add(jTextField);
              jTextField.setBounds(40, 30, 950, 20);
              // ticket
              JLabel ticketlabel = new JLabel("ticket");
              contentPane.add(ticketlabel);
              ticketlabel.setBounds(5, 60, 30, 20);
              JTextField ticketField = new JTextField();
              contentPane.add(ticketField);
              ticketField.setBounds(40, 60, 950, 20);
              // 提交
              JButton submit = new JButton("提交");
              contentPane.add(submit);
              submit.setBounds(450,85,60,30);
              submit.addActionListener(listener -> {
                  setTicket(ticketField.getText().trim());
                  setIsClick(true);
                  this.show(false);
              });
              submit.doClick();
              return this;
          }
      
          /**
           * 获取滑块结果
           * @return ticket
           */
          public String ticket() {
              while (!this.getIsClick()){
                  try {
                      Thread.sleep(2000);
                  } catch (InterruptedException e) {
                      e.printStackTrace();
                  }
              }
              this.isClick = false;
              return this.ticket;
          }
      }
      
      发布在 开发交流
      lngex
      lngex
    • 自定义滑块或者在登陆时会一直循环调用滑块处理

      替代文字,如图,目前图片处理还在弹出

      发布在 开发交流
      lngex
      lngex