Вопрос: Использование Firefox Pocket addon с Pentadactyl


я использую Pentadactyl, плагин Firefox, который имитирует привязку и просмотр в стиле vim. Недавно меня интересовало использование Карман с «Автоматически делать все сохраненные страницы доступными в автономном режиме» как простой способ сохранять и управлять статьями для автономного просмотра.

Карман сохраняет страницы с помощью кнопки в строке URL. Там также кнопка для панели инструментов, но это, кажется, ничего не делает для меня и показывает только белый ящик. В меню правой кнопки мыши есть опция, а также закладка для добавления в карманную учетную запись. Кажется, я не могу найти способ вызвать любой из этих параметров, используя команды Pentadactyl.

Единственный :emenu карманная команда, которую я могу найти, предназначена для показа и скрытия боковой панели. Есть способ привязать команды к закладке, но у меня часто очень медленный интернет, и для этого требуется, чтобы Pocket добавила страницу в мою учетную запись, затем синхронизировалась с моими локальными файлами, а затем загрузила файл для автономного просмотра.

Есть ли способ определить команду Pentadactyl для доступа к действиям аддона, которые мне не хватает? Я также не могу найти способ доступа к элементам контекстного меню, или я мог бы использовать там команду. Спасибо за любую помощь.


2
2018-04-10 07:19


Источник




Ответы:


  • Вы можете установить Pocket bookmarklet и назначьте ему ключевое слово, которое позволит вам активировать его, используя о за которым следует ключевое слово. Например. оpocВойти

  • Кроме того, вы можете преобразовать код букмарклета в команду и сохранить его в своем .pentadactylrc:

     command! pocket :open javascript:(function(){var%20e=function(t,n,r,i,s){var%20o=[3526112,5522661,1460314,3450302,5361262,5114635,2897350,3675444,1446118,2801611];var%20i=i||0,u=0,n=n||[],r=r||0,s=s||0;var%20a={'a':97,'b':98,'c':99,'d':100,'e':101,'f':102,'g':103,'h':104,'i':105,'j':106,'k':107,'l':108,'m':109,'n':110,'o':111,'p':112,'q':113,'r':114,'s':115,'t':116,'u':117,'v':118,'w':119,'x':120,'y':121,'z':122,'A':65,'B':66,'C':67,'D':68,'E':69,'F':70,'G':71,'H':72,'I':73,'J':74,'K':75,'L':76,'M':77,'N':78,'O':79,'P':80,'Q':81,'R':82,'S':83,'T':84,'U':85,'V':86,'W':87,'X':88,'Y':89,'Z':90,'0':48,'1':49,'2':50,'3':51,'4':52,'5':53,'6':54,'7':55,'8':56,'9':57,'\/':47,':':58,'?':63,'=':61,'-':45,'_':95,'&':38,'$':36,'!':33,'.':46};if(!s||s==0){t=o[0]+t}for(var%20f=0;f<t.length;f++){var%20l=function(e,t){return%20a[e[t]]?a[e[t]]:e.charCodeAt(t)}(t,f);if(!l*1)l=3;var%20c=l*(o[i]+l*o[u%o.length]);n[r]=(n[r]?n[r]+c:c)+s+u;var%20p=c%(50*1);if(n[p]){var%20d=n[r];n[r]=n[p];n[p]=d}u+=c;r=r==50?0:r+1;i=i==o.length-1?0:i+1}if(s==166){var%20v='';for(var%20f=0;f<n.length;f++){v+=String.fromCharCode(n[f]%(25*1)+97)}o=function(){};return%20v+'ce5c747776'}else{return%20e(u+'',n,r,i,s+1)}};var%20t=document,n=t.location.href,r=t.title;var%20i=e(n);var%20s=t.createElement('script');s.type='text/javascript';s.src='https://getpocket.com/b/r4.js?h='+i+'&u='+encodeURIComponent(n)+'&t='+encodeURIComponent(r);e=i=function(){};var%20o=t.getElementsByTagName('head')[0]||t.documentElement;o.appendChild(s)})()
    

    Затем вы можете сохранить страницу, используя :pocketВойти

  • Если вы хотите сохранить все вкладки в карман, вы можете включить эту команду в свой .pentadactylrc:

     command! pocketall -js RIL.saveTabs()
    

    заметка: в отличие от предыдущей команды, это не вызывает появление баннера


Доступ к функциональным возможностям расширения в целом.

Чтобы ответить на ваш более общий вопрос, вы можете часто обращаться к функциям расширений через javascript, но обычно это связано с некоторыми исследованиями, проб и ошибок. Существует два способа запуска javascript из pentadactyl:

  1. :js ...
  2. :open javascript: ... (или, что то же самое, оjavascript: ...)

    Это похоже на запуск букмарклета: он использует команду открытого документа с javascript: «Псевдо-протокол».

Эти два метода запускают javascript в разных контекстах. В последнем глобальный объект является стандартным window объект, который предоставляет клиентский код для доступа к браузеру. В первом глобальном объекте ChromeWindow объект, который дает вам доступ к большему количеству внутренних элементов браузера, включая элементы интерфейса Firefox и объекты расширения, которые недоступны в window объект.

Вы можете изучить ChromeWindow объект, используя завершение командной строки pentadactyl. Тип :jsКосмосTAB и вы получите прокручиваемый список дополнений. Теперь продолжайте: RIL.TAB  и вы получите список членов объекта RIL (принадлежащих расширению Pocket).

Еще одним инструментом является Firefox Консоль браузера, который работает в том же контексте. Вы можете получить к нему доступ Ctrl-сдвиг-J, Это обеспечивает интерактивную командную строку и инспектор объектов.

Наконец, вы можете захотеть вставить файлы расширения в свой каталог профиля (в GNU / Linux это обычно $HOME/.mozilla/firefox/PROFILE_NAME/extensions/). Это может дать вам подсказки о том, что искать. Например, даже без фактического открытия каких-либо исходных файлов имена говорили мне искать объекты, начиная с «RIL», когда я искал функциональность карманного расширения.


2
2018-05-12 08:28



вау, один месяц ответа на этот пост и 2 человека не отвечают практически в одно и то же время. Псих :) - simonwjackson
Именно то, что я искал, тем более общая информация о доступе к функциональности расширения. Благодарю. (и да, не ожидал ответа на это вообще, и я получил два в один день xD) - kstew


Я работал с тегами. Добавьте это в свой pentadactylrc:

command! pocket -nargs=* :open javascript:(function(){window.open('https://getpocket.com/edit?url='+escape(window.location.href)+'&tags=<args>', '_self');})()

чем триггер через:

:pocket optionalFirstTag,optionalSecondTag

Теги не будут отображаться на загруженной странице, но будут сохранены в вашем списке чтения. Чтобы открыть его на новой вкладке, измените код с '_self' на '_blank'.

Если кто-то знает, как бросить ссылку из режима подсказки, не посещая ее, это было бы здорово.


3
2018-04-23 10:36



Чтобы добавить режим подсказки, сначала вам нужно отредактировать eht для регистрации тега подсказки. Вы можете просто добавить свое письмо в [asotvvwy] группы или использовать set eht+=[p]:':-moz-any-link', Затем вы должны предоставить описание и функцию. Вы можете сделать это с помощью hints.addMode функция. Например js hints.addMode('p','save with pocket', e=>saveLinkWithPocket(e.href)); где saveLinkWithPocket это функция, которая добавляет ссылку в карман. Вы можете найти несколько примеров в моем .pentadactylrc file или в источнике дактиля в common/content/hints.js, - pyrocrasty


Существует несколько дополнительных возможностей:

  1. Вы можете переключиться на Instapaper (экспорт ссылок из Pocket, а потом использовать Instapaper «Импорт из кармана») и используйте мои собственный плагин instapaper для пентадактила,
  2. Если у вас есть время и желание, вы можете принять плагин vimperator для чтения (карман) для пентадактила. Это не так сложно, как вы можете ожидать.

1
2018-06-22 10:41





Вы можете сделать это легко с помощью букмарклета.

  1. Перейти на этот сайт: https://getpocket.com/add?sb=1
  2. Щелкните правой кнопкой мыши красную кнопку букмарклета, затем нажмите «Скопировать местоположение ссылки»
  3. Поместите эту строку в файл ~ / .pentadactylrc и замените #BOOKMARKLET LINK # на URL, который вы только что скопировали:

    command! pocket -description "Save to Pocket" open #BOOKMARKLET LINK#

Теперь вы можете просто использовать :pocket ex, когда вы находитесь на странице, которую хотите сохранить.

Надеюсь это поможет.

Источник: http://www.martinjosefsson.com/2012/10/30/pocket-and-pentadactyl.html


0
2018-05-12 08:36