From 45f78d5e27aebb07dd3494b6af452c850e4ed7b7 Mon Sep 17 00:00:00 2001 From: anekos Date: Fri, 19 Aug 2011 16:16:49 +0900 Subject: CSSRules で生成するのを移植 --- google-plus-commando.js | 139 ++++++++++++++++++++++++++++++------------------ 1 file changed, 88 insertions(+), 51 deletions(-) (limited to 'google-plus-commando.js') diff --git a/google-plus-commando.js b/google-plus-commando.js index 88adb64..1851032 100644 --- a/google-plus-commando.js +++ b/google-plus-commando.js @@ -36,7 +36,7 @@ THE POSSIBILITY OF SUCH DAMAGE. // INFO {{{ let INFO = <> - div > div:nth-child(2) > div > div > ' + role('button', 'span') // FIXME }, } }, - closeButton: '.Fk.o4' // Viewer 等 + closeButton: cssRules.finder(/url\("\/\/ssl\.gstatic\.com\/s2\/oz\/images\/lightbox-sprite2.gif"\).*0%.*0%/) }; let xpath = { @@ -286,36 +355,10 @@ let g:gplus_commando_map_menu = "m" ] }; - - function once (obj) { - function _once (obj, name, func) { - Object.defineProperty( - obj, - name, - { - get: let (result) function () (result || (result = func())) - } - ); - } - - for (let [n, v] in I(obj)) { - if (n === 'role') - continue; - if (typeof v === 'function') - _once(obj, n, v); - if (typeof v === 'object') - once(v); - } - } - - once(selector); - + onceAll(selector, '.MEOW_MEOW_MEOW'); + once(cssRules, 'items'); return [selector, xpath]; - - function role (name, prefix) - ((prefix || '') + '[role="' + name + '"]'); - })(); // }}} @@ -488,8 +531,8 @@ let g:gplus_commando_map_menu = "m" for ([, e] in Iterator(A(root.querySelectorAll('a')))) if (!e.getAttribute('oid')) ][0], - get unfold () root.querySelector(S.currentEntry.unfold.join(', ')), - get unfolds () A(root.querySelectorAll(S.currentEntry.unfold.join(', '))), + get unfold () root.querySelector(S.currentEntry.unfold), + get unfolds () A(root.querySelectorAll(S.currentEntry.unfold)), get buttons () A(self.plusone.parentNode.querySelectorAll(S.role('button'))), get commentButton () self.buttons[0], get commentEditor () let (e = root.querySelector(S.editable)) (e && e.parentNode), @@ -499,13 +542,7 @@ let g:gplus_commando_map_menu = "m" menu: { get root () root.querySelector(S.role('menu')), get items () A(self.menu.root.querySelectorAll(S.role('menuitem'))), - get mute () { - // XXX 誤爆いやなので、チェックを入れる - let item1 = self.menu.items.slice(-2)[0]; - let item2 = self.menu.root.querySelector(S.role('menuitem', S.currentEntry.menu.mute)); - if (item1 === item2) - return item1; - } + get mute () self.menu.items.slice(-2)[0] }, get menuButton () root.querySelector(S.currentEntry.menuButton), get cancel () root.querySelector(S.currentEntry.cancel), @@ -561,7 +598,7 @@ let g:gplus_commando_map_menu = "m" get back () root.contentDocument.querySelector(S.frames.notifications.summary.back), get comment () self.entry.current.querySelector(S.frames.notifications.entry.comment), get mute () self.entry.current.querySelector(S.frames.notifications.entry.mute), - get unfold () root.contentDocument.querySelector(S.currentEntry.unfold.join(', ')) + get unfold () root.contentDocument.querySelector(S.currentEntry.unfold) } }; return self; -- cgit v1.2.3