diff --git a/rucn_Qianyi.js b/rucn_Qianyi.js
new file mode 100644
index 00000000..d2b17ace
--- /dev/null
+++ b/rucn_Qianyi.js
@@ -0,0 +1,320 @@
+/* global api */
+class rucn_Qianyi {
+ constructor(options) {
+ this.options = options;
+ this.maxexample = 2;
+ this.word = '';
+ }
+
+ async displayName() {
+ let locale = await api.locale();
+ if (locale.indexOf('CN') != -1) return '千亿词霸俄汉词典';
+ if (locale.indexOf('TW') != -1) return '千亿词霸俄汉词典';
+ return 'Qianyi RU->CN Dictionary';
+ }
+
+ setOptions(options) {
+ this.options = options;
+ this.maxexample = options.maxexample;
+ }
+
+ async findTerm(word) {
+ this.word = word;
+ return await this.findQianyi(word);
+ }
+
+ async findQianyi(word) {
+ let notes = [];
+ if (!word) return notes;
+
+ function T(node) {
+ if (!node) return '';
+ return node.innerText ? node.innerText.trim() : '';
+ }
+
+ let base = 'https://w.qianyix.com/index.php?q=';
+ let url = base + encodeURIComponent(word);
+ let doc = '';
+ try {
+ let data = await api.fetch(url);
+ let parser = new DOMParser();
+ doc = parser.parseFromString(data, 'text/html');
+ } catch (err) {
+ return [];
+ }
+
+ // ===== 原型词提示(只显示一次)=====
+ let rootHintHtml = '';
+ let hintEl = doc.querySelector('.result-tip');
+ if (hintEl) {
+ rootHintHtml = '
' + hintEl.innerHTML + '
';
+ }
+
+ let entries = doc.querySelectorAll('.baseword .view') || [];
+ for (const entry of entries) {
+ let definition = '';
+ let expression = '';
+ let audios = [];
+
+ let keywordEl = entry.querySelector('.keyword');
+ if (!keywordEl || !keywordEl.dataset.guid) continue;
+
+ expression = T(keywordEl);
+
+ // 音频
+ let audio = entry.querySelector('.speaker');
+ if (audio && audio.dataset.url) {
+ audios[0] = audio.dataset.url;
+ }
+
+ // 从父面板 ID 取序号(base0 → 0, base1 → 1 ...)
+ let parentId = entry.parentNode.id || '';
+ let seq = parentId.replace('base', '');
+
+ // ---- 1. 原型词提示 ----
+ if (rootHintHtml) {
+ definition += rootHintHtml;
+ rootHintHtml = ''; // 只显示一次
+ }
+
+ // ---- 2. 基本释义 ----
+ let expEl = entry.querySelector('.exp');
+ if (expEl) {
+ definition += '📖 基本释义
';
+ definition += '';
+ let defblocks = expEl.innerHTML.split('
');
+ for (const defblock of defblocks) {
+ let trimmed = defblock.trim();
+ if (trimmed) {
+ definition += '- '
+ + trimmed + '
';
+ }
+ }
+ definition += '
';
+ }
+
+ // ---- 3. 行业释义(包含词性信息如 [阴][中][阳])----
+ if (seq !== '') {
+ let detailPanel = doc.querySelector('#detail' + seq);
+ if (detailPanel) {
+ let industryItems = detailPanel.querySelectorAll(
+ '.subExpContainer .exp-item-sub');
+ if (industryItems.length > 0) {
+ definition += '🏭 行业释义
';
+ definition += '';
+ for (const item of industryItems) {
+ let industry = T(item.querySelector('.subTip'));
+ let subExpEl = item.querySelector('.subExp .exp');
+ let subExp = subExpEl ? subExpEl.innerText.trim() : '';
+ if (industry && subExp) {
+ definition += '- '
+ + '' + industry + ' '
+ + '' + subExp + ''
+ + '
';
+ }
+ }
+ definition += '
';
+ }
+ }
+ }
+
+ // ---- 4. 变位变格(名词6格 / 动词变位)★ 核心新增 ★ ----
+ if (seq !== '') {
+ let grmPanel = doc.querySelector('#grm' + seq);
+ if (grmPanel) {
+ let grmDiv = grmPanel.querySelector('.grammardiv');
+ if (grmDiv) {
+ // 取出原始 HTML,去掉可能混入的