🔥維護記錄

尤其是给楼中楼评论点赞,在平板上那个折叠的功能键简直是处于一个不可观测态

2 Likes

恢復幾天看看反應。

1 Like

我有意见,平板点赞双指缩放页面即可,没有楼中楼帖子太长,我也看不懂谁在评论谁

3 Likes

而且整个楼长的离大谱
之前歪楼还容易翻过去,现在得在一大坨史里边找一点好东西

1 Like



从上从下都能展开,我觉得还好(评论模式下,楼中楼回复楼中楼是没法看到底在回哪个回复的)

1 Like

然而展开了下面的帖子也还在
想看看对某个特定帖子的新回复还是得翻半天

2 Likes

匡扶漢室!

再發給三國殺打好評了(笑)

更新論壇AI主模型為:gemini-2.5-pro-exp-03-25

1 Like

许个愿,能不能让bilibili也有和YouTube一样的站内播放器

4 Likes

据我所知bilibili是有这样的插件的

1 Like

誰去寫個插件我就接進來:)

1 Like

有,但之前實測不能用。

1 Like

让grok写的插件能用吗(?)

grok

我来帮你创建一个可以在 Discourse 论坛中直接播放 Bilibili 视频的插件。以下是实现方案的完整说明和代码。


解决方案概述

Discourse 是一个开源的论坛软件,支持通过插件扩展功能。为了在 Discourse 中播放 Bilibili 视频,我们可以利用 Discourse 的 Onebox 系统。Onebox 是一种自动将特定链接转换为嵌入内容的功能(例如 YouTube 视频、Twitter 帖子等)。我们将为 Bilibili 视频开发一个自定义 Onebox 引擎,使其能够识别 Bilibili 视频链接并生成嵌入式播放器(iframe)。

插件的主要功能是:

  1. 识别用户在 Discourse 帖子中粘贴的 Bilibili 视频 URL。
  2. 从 URL 中提取视频标识(BV号或av号)。
  3. 生成对应的 iframe 嵌入代码,实现在论坛页面直接播放视频。

Bilibili 视频 URL 和嵌入代码格式

Bilibili 视频有两种常见的 URL 格式:

  • BV号格式https://www.bilibili.com/video/BV1abcdef123
  • av号格式(旧格式,但仍有效):https://www.bilibili.com/video/av12345678

此外,URL 中可能包含 ?p=2 参数,表示多部分视频的第几部分(例如 https://www.bilibili.com/video/BV1abcdef123?p=2)。

Bilibili 提供官方的嵌入代码,格式如下:

  • 对于 BV号:<iframe src="https://player.bilibili.com/player.html?bvid=BV1abcdef123&page=1" ...></iframe>
  • 对于 av号:<iframe src="https://player.bilibili.com/player.html?aid=12345678&page=1" ...></iframe>

我们的插件需要支持这两种格式,并正确处理页面参数。


插件实现步骤

1. 插件目录结构

在 Discourse 中,插件通常以 Ruby 语言编写,并遵循特定的目录结构。我们将创建一个名为 discourse-bilibili-onebox 的插件,结构如下:

discourse-bilibili-onebox/
├── plugin.rb
└── lib/
    └── onebox/
        └── engine/
            └── bilibili_onebox.rb
  • plugin.rb:插件的入口文件,包含插件的基本信息。
  • bilibili_onebox.rb:自定义 Onebox 引擎的实现代码。

2. 编写 Onebox 引擎代码

lib/onebox/engine/bilibili_onebox.rb 中,我们定义一个 BilibiliOnebox 类,继承自 Onebox::Engine,并实现以下核心功能:

  • URL 匹配:使用正则表达式识别 Bilibili 视频 URL。
  • HTML 生成:根据提取的视频标识生成嵌入代码。

代码如下:

module Onebox
  module Engine
    class BilibiliOnebox
      include Engine

      # 匹配 Bilibili 视频 URL,支持 BV 和 av 格式,以及可选的 page 参数
      matches_regexp(/^https?:\/\/(?:www\.)?bilibili\.com\/video\/(BV\w+|av\d+)(?:\?p=(\d+))?/)

      # 生成嵌入 HTML 代码
      def to_html
        # 从 URL 中提取视频 ID 和页面参数
        match = @url.match(/^https?:\/\/(?:www\.)?bilibili\.com\/video\/(BV\w+|av\d+)(?:\?p=(\d+))?/)
        video_id = match[1]
        page = match[2] || "1"  # 默认页面为 1

        # 根据视频 ID 类型(BV 或 av)设置参数
        if video_id.start_with?("BV")
          param = "bvid=#{video_id}"
        else
          param = "aid=#{video_id[2..-1]}"  # 移除 "av" 前缀
        end

        # 返回嵌入 iframe 代码
        <<~HTML
          <iframe src="https://player.bilibili.com/player.html?#{param}&page=#{page}" 
                  scrolling="no" 
                  border="0" 
                  frameborder="no" 
                  framespacing="0" 
                  allowfullscreen="true" 
                  width="560" 
                  height="315"></iframe>
        HTML
      end
    end
  end
end

代码说明

  • matches_regexp:正则表达式匹配 Bilibili 视频 URL,捕获 BV号或 av号,以及可选的 p 参数。
  • to_html:从 URL 中提取视频 ID 和页面号,生成对应的 iframe 嵌入代码。iframe 使用 HTTPS 协议,确保安全性。

3. 编写插件入口文件

plugin.rb 中,定义插件的基本信息。Discourse 会自动加载 lib/onebox/engine 目录下的 Onebox 引擎,因此通常无需额外注册代码。文件内容如下:

# name: discourse-bilibili-onebox
# version: 0.1
# authors: [你的名字]
# url: https://github.com/[你的用户名]/discourse-bilibili-onebox
# description: 在 Discourse 中嵌入 Bilibili 视频的 Onebox 插件

# 可选:显式加载 Onebox 引擎(通常 Discourse 会自动加载)
require_relative 'lib/onebox/engine/bilibili_onebox'

安装和使用

安装步骤

  1. 将插件上传到 GitHub 仓库(例如 https://github.com/[你的用户名]/discourse-bilibili-onebox)。
  2. 在 Discourse 服务器的 app.yml 文件中添加插件:
    hooks:
      after_code:
        - exec:
            cd: $home/plugins
            cmd:
              - git clone https://github.com/[你的用户名]/discourse-bilibili-onebox.git
    
  3. 重建 Discourse 容器:
    cd /var/discourse
    ./launcher rebuild app
    

使用方法

  • 在 Discourse 帖子中粘贴 Bilibili 视频链接,例如:
    • https://www.bilibili.com/video/BV1abcdef123
    • https://www.bilibili.com/video/av12345678?p=2
  • 插件会自动将链接转换为嵌入式播放器,用户可以直接在论坛页面播放视频。

注意事项

  1. 兼容性:此插件适用于近期版本的 Discourse,因为它依赖 Onebox 系统和 Ruby 的自动加载机制。
  2. 安全性:确保 Discourse 的 Content Security Policy (CSP) 允许来自 https://player.bilibili.com 的 iframe。默认情况下,Discourse 支持嵌入视频,应该不会有问题。
  3. 响应式设计:当前 iframe 使用固定宽高(560x315)。如需自适应布局,可在 Discourse 的 CSS 中为 .onebox 类添加样式。

结论

通过以上步骤,你可以创建一个 Discourse 插件,使其支持在论坛页面直接播放 Bilibili 视频。插件利用 Onebox 引擎,识别 Bilibili 视频链接并生成嵌入代码,支持 BV号和 av号格式,并能处理多部分视频的页面参数。用户只需安装插件并粘贴视频链接即可享受嵌入式播放体验。

如果你需要进一步优化(例如添加视频标题或调整样式),可以告诉我,我会帮你扩展代码!

1 Like

但是这种直接用url嵌入会被易控干掉应该

2 Likes
不用URL直接嵌入

回答用户查询:不在 Discourse 中直接使用 URL 嵌入 Bilibili 视频

您的需求是不直接使用 URL 嵌入 Bilibili 视频,而是通过其他方式实现在 Discourse 论坛中播放。为了满足这一要求,我将为您设计一个 Discourse 插件,通过识别帖子中的 Bilibili 视频链接并将其转换为嵌入式播放器(iframe)来实现功能,而无需用户手动嵌入 URL 或依赖默认的 URL 渲染机制。

以下是完整的解决方案:


解决方案概述

我们将开发一个名为 discourse-bilibili-video 的 Discourse 插件,利用 Discourse 的 cooked post processor(帖子内容处理器)来实现以下功能:

  1. 自动识别用户在帖子中粘贴的 Bilibili 视频链接。
  2. 从链接中提取视频标识(BV号或 av号)及页面参数。
  3. 将链接转换为嵌入式播放器,而不是保留原始 URL 或依赖 Discourse 的默认链接渲染。

这种方法避免了直接使用 URL 嵌入,而是通过插件动态生成播放器,用户只需粘贴链接即可在页面上直接观看视频。


实现步骤

1. 插件的基本结构

插件将包含以下文件:

  • plugin.rb:插件的入口文件,定义插件信息并注册处理器。
  • lib/bilibili_video_processor.rb:自定义处理器,负责解析链接并生成嵌入代码。

目录结构如下:

discourse-bilibili-video/
├── plugin.rb
└── lib/
    └── bilibili_video_processor.rb
2. 编写视频链接处理器

lib/bilibili_video_processor.rb 中,我们创建一个处理器来识别 Bilibili 链接并生成播放器代码:

module BilibiliVideoProcessor
  def self.process!(doc)
    # 遍历帖子中的所有 <a> 标签
    doc.css('a').each do |link|
      url = link['href']
      # 检查是否为 Bilibili 视频链接
      next unless url&.match?(/^https?:\/\/(?:www\.)?bilibili\.com\/video\/(BV\w+|av\d+)(?:\?p=(\d+))?/)

      # 提取视频 ID 和页面参数
      match = url.match(/^https?:\/\/(?:www\.)?bilibili\.com\/video\/(BV\w+|av\d+)(?:\?p=(\d+))?/)
      video_id = match[1]
      page = match[2] || "1"  # 默认页面为 1

      # 根据视频 ID 类型生成参数
      if video_id.start_with?("BV")
        param = "bvid=#{video_id}"
      else
        param = "aid=#{video_id[2..-1]}"  # 移除 "av" 前缀
      end

      # 生成嵌入式播放器代码
      iframe = <<~HTML
        <iframe src="https://player.bilibili.com/player.html?#{param}&page=#{page}" 
                scrolling="no" 
                border="0" 
                frameborder="no" 
                framespacing="0" 
                allowfullscreen="true" 
                width="560" 
                height="315"></iframe>
      HTML

      # 用播放器替换原始链接
      link.replace(iframe)
    end
  end
end

代码说明

  • 使用正则表达式匹配 Bilibili 视频链接(支持 BV号 和 av号 格式)。
  • 提取视频 ID 和页面参数(如 ?p=2 表示第 2 部分)。
  • 生成 iframe 播放器代码,并替换掉原始的 <a> 标签。
3. 注册处理器到 Discourse

plugin.rb 中,将处理器集成到 Discourse 的帖子渲染流程中:

# name: discourse-bilibili-video
# version: 0.1
# authors: [你的名字]
# url: https://github.com/[你的用户名]/discourse-bilibili-video
# description: 在 Discourse 中嵌入 Bilibili 视频的插件

require_relative 'lib/bilibili_video_processor'

after_initialize do
  # 添加自定义处理方法
  add_to_class(:cooked_post_processor, :process_bilibili_videos) do
    BilibiliVideoProcessor.process!(@doc)
  end

  # 在帖子渲染时调用
  add_to_class(:cooked_post_processor, :post_process) do
    process_bilibili_videos
    super
  end
end

代码说明

  • after_initialize 在 Discourse 初始化后运行。
  • process_bilibili_videos 方法添加到 cooked_post_processor,在帖子内容渲染时自动处理 Bilibili 链接。

安装和使用

安装步骤
  1. 将插件代码上传至 GitHub 仓库,例如 https://github.com/[你的用户名]/discourse-bilibili-video
  2. 编辑 Discourse 服务器的 app.yml 文件,添加插件:
    hooks:
      after_code:
        - exec:
            cd: $home/plugins
            cmd:
              - git clone https://github.com/[你的用户名]/discourse-bilibili-video.git
    
  3. 重建 Discourse 容器:
    cd /var/discourse
    ./launcher rebuild app
    
使用方法
  • 在 Discourse 帖子中直接粘贴 Bilibili 视频链接,例如:
    • https://www.bilibili.com/video/BV1abcdef123
    • https://www.bilibili.com/video/av12345678?p=2
  • 插件会自动将链接转换为嵌入式播放器,用户无需手动操作即可在页面上播放视频。

优势与特点

  1. 无需 URL 嵌入:插件直接将链接转换为播放器,而不是依赖 Discourse 默认的 URL 渲染或手动嵌入 iframe。
  2. 支持多种格式:兼容 Bilibili 的 BV号 和 av号 链接,并能处理多部分视频的页面参数。
  3. 无缝集成:用户体验自然,只需粘贴链接即可,无需额外配置。

注意事项

  • 兼容性:确保您的 Discourse 版本支持 cooked post processor(通常为近期版本)。
  • 安全性:Discourse 默认允许嵌入视频 iframe,但请检查 Content Security Policy (CSP) 是否允许 https://player.bilibili.com
  • 样式调整:当前播放器宽高固定为 560x315,如需响应式设计,可在 Discourse 的自定义 CSS 中添加样式。

通过这种方式,您可以在 Discourse 中实现不直接使用 URL 嵌入的 Bilibili 视频播放功能。插件会自动处理链接并呈现播放器,为用户提供便捷的体验。如果您需要进一步优化(例如添加视频标题或调整布局),请告诉我,我可以进一步完善方案!

1 Like

Google更新調用次數:

:fox: AI高考 :lion: AI論語 :mouse_face: AI紅樓 :owl: AI課文

以上網站繼續使用 Free ,增加到25個帳號輪循,還會不理人,但會少很多。

Model RPM TPM RPD
Gemini 2.5 Pro Experimental 5 1,000,000 25

論壇

繼續使用付費Tier 1

Model RPM TPM RPD
Gemini 2.5 Pro Experimental 20 2,000,000 100

日常對話,應該不會不理人了。

超多輪對話

建議大家使用自己帳號直接在 ai.dev 展開,既可以直接保存在個人雲盤,且幾乎不會斷流。

3 Likes

为何有时自动保存会自己跳回去。。。导致有些对话没保存上(
以及推荐大家用chrome,edge的网页格式混乱

1 Like

增加至30個API。

重設API邏輯:全部輪循使用完gemini-2.5-pro-exp-03-25所有額度後,自動轉到gemini-2.0-flash-thinking-exp-01-21,gemini-2.5-pro-exp-03-25重置後自動回歸。

高密度對話測試下,出錯率極小了;
但整體回覆速度因文本長度仍舊不好,說人話,回覆慢慢慢⋯⋯

1 Like

沒法硬剛GFW,繞⋯⋯
AI高考 :lion: | AI論語 :mouse_face: | AI紅樓 :snail: | 高考默寫 :owl: | AI課文,現在應該都可以無牆使用AI了。

1 Like