Evridika
Есть бесплатный конвертор SUPER (так и называется). На английском, но разобраться можно (даже я разобрался).
Радик,
но он же не конвертирует в МРEG4,(что мне и нужно), кроме того пишет, что делает только 50% конвертации.
Не-е, ТОТАL VIDEO лучше всех! Супер! Предлагаю испытать.
Но все равно, спа-си-бо!
Отсутствует
Evridika, а чего Вам не попробовать использовать MediaCoder? Конвертирует из ВСЕГО во ВСЕ Да и возможностей настроек - хоть для новичков, хоть для профи - море. К тому же. интерфейс настроек отрисовывает с помощью установленной Firefox - вон какое совпадение интересное.
Все, я пошел...
Шалабудабуда...
Отсутствует
Лия
Чем всё закончилось с лепрой?
Отсутствует
Есть какой-нибудь плагин или хинт, который бы позволял копировать группу ссылок вот такого вида:
1. Часть файла.
2. Часть файла.
...
182. Часть файла.
Отредактировано Лия (14-10-2008 14:19:25)
Отсутствует
Лия
Специально для этого расширений не знаю. Зато есть расширение, которое очень облегчает жизнь именно в таких вот ситуациях.
Отсутствует
Я так понимаю, это нужно, чтобы составить список ссылок и скормить его программе загрузки. Расширение как раз помогает это сделать. Обычно такие ссылки имеют похожие имена (или адреса). Поэтому я сортирую список всех ссылок на странице по имени или по адресу ссылки, нахожу нужные мне в этом списке (как правило, после сортировки они идут подряд), выделяю сразу штук 12 (больше ни разу не встречал) и копирую, а затем сохраняю в текстовый файл, который и скармливается программе загрузки. Неудобно? Ну, кому как.
Отсутствует
Есть какой-нибудь плагин или хинт, который бы позволял копировать группу ссылок вот такого вида:
1. Часть файла.
2. Часть файла.
...
182. Часть файла.
Набросал на скорую руку (а то раньше у меня только все ссылки со страницы выдавало ):
javascript: (function() { if(window.__removeLinksList) { window.__removeLinksList(); return; } var containerClass = "__linkContainer"; var allLinks = {}; var linksCnt = 0; function getLinks(doc, rng) { if(rng) { var div = doc.createElement("div"); div.appendChild(rng.cloneContents()); doc = div; } var links = doc.getElementsByTagName("a"), a, h; for(var i = 0, len = links.length; i < len; i++) { a = links[i]; h = a.href; if(h) { allLinks[h] = a.textContent; linksCnt++; } } } function parseNodes(win) { try { var sel = null; var sel = win.getSelection(); var rngCnt = sel.rangeCount; if(rngCnt == 0) { getLinks(win.document, null); return; } for(var i = 0; i < rngCnt; i++) getLinks(win.document, sel.getRangeAt(i)); } catch(e) { setTimeout(function() { throw e; }, 0); } } function parseWin(win) { parseNodes(win); for(var i = 0, len = win.frames.length; i < len; i++) parseWin(win.frames[i]); } parseWin(window); function deselect() { window.getSelection().removeAllRanges(); } if(linksCnt == 0) { deselect(); parseWin(window); } if(linksCnt == 0) { alert("Ссылок нет!"); return; } var body = document.body; var _body; if(body.nodeName.toLowerCase() != "body") { _body = document.createElement("body"); document.documentElement.appendChild(_body); body = _body; } var head = document.getElementsByTagName("head")[0]; var addedStl = null; if(head) { addedStl = document.createElement("style"); addedStl.type = "text/css"; addedStl.appendChild(document.createTextNode( "div." + containerClass + " > a { color: #00b !important; text-decoration: none !important; " + "font: 13px \"Courier New\",monospace !important; }\n" + "div." + containerClass + " > a:hover { color: #00b !important; text-decoration: underline !important; }" )); head.appendChild(addedStl); } var container = document.createElement("div"); var cBorder = 20; var mHeight = window.innerHeight - cBorder*2; var bHeight = 28; container.setAttribute( "style", "position: fixed !important; " + "z-index: 65535 !important; " + "text-align: left !important; " + "top: " + cBorder + "px !important; " + "left: " + cBorder + "px !important; " + "right: " + cBorder + "px !important; " + "max-height: " + mHeight + "px !important; " + "background-color: #f8f8f8 !important; " + "border: 1px solid #00a !important; " + "padding: 2px 6px !important; " + "opacity: 0.9 !important; " ); var _cnt = document.createElement("div"); _cnt.setAttribute( "style", "display: block !important; " + "overflow: auto !important; " + "max-height: " + (mHeight - bHeight) + "px !important; " ); container.appendChild(_cnt); var linksContainer = document.createElement("div"); linksContainer.setAttribute( "style", "display: block !important; " ); _cnt.appendChild(linksContainer); function appendButton(fnc, lbl) { var btt = document.createElement("button"); btt.onclick = fnc; btt.setAttribute( "style", "margin: 0 4px 4px 0 !important; " + "height: " + (bHeight - 4) + "px !important; " + "font-size: 13px !important; " ); btt.appendChild(document.createTextNode(lbl)); container.insertBefore(btt, _cnt); } window.__removeLinksList = function() { if(addedStl) addedStl.parentNode.removeChild(addedStl); container.parentNode.removeChild(container); if(_body) _body.parentNode.removeChild(_body); delete(window.__removeLinksList); }; appendButton( window.__removeLinksList, "Закрыть" ); function selectAll() { deselect(); var rng = document.createRange(); rng.selectNode(linksContainer); window.getSelection().addRange(rng); } appendButton( selectAll, "Выделить всё" ); var linkContainer = document.createElement("div"); linkContainer.setAttribute( "style", "display: block !important;" ); linkContainer.className = containerClass; var a, cnt; for(var h in allLinks) { a = document.createElement("a"); cnt = linkContainer.cloneNode(false); a.href = h; a.appendChild(document.createTextNode(h)); a.title = allLinks[h]; cnt.appendChild(a); linksContainer.appendChild(cnt); } body.appendChild(container); selectAll(); })();
(закладка-букмарклет)
Повторный вызов скрывает список ссылок (для любителей отключать JavaScript ).
Исходный код: all_links-0.0.3.js
Если ничего не выделено или в выделении нет ссылок, сбрасывает выделение и выдает все ссылки со страницы.
P.S. Для некоторых страниц с фреймами не работает (например, поиск картинок от гугла) – нет доступа к содержимому (см. консоль ошибок)...
Отредактировано Infocatcher (15-10-2008 22:20:38)
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
Лия
В чем? Как?
В окне информации о странице, ясное дело Переключаюсь на панель вывода ссылок и сортирую как в любом файловом менеджере. Хотя с автофильтром, конечно, было б гораздо удобнее.
Отсутствует
Лия
Пожалуйста.
Добавил скрытие флэш-объектов (упорно вылезали поверх , особенно в Опере), немного подправил внешний вид (чтобы не перебивался стилями сайта) и добавил поиск (увы, работает только если на странице разрешен JavaScript):
javascript: (function() { if(window.__removeLinksList) { window.__removeLinksList(); return; } var containerClass = "__linkContainer"; var allLinks = {}; var linksCnt = 0; function err(str) { setTimeout(function() { throw new Error(str); }, 0); } function getLinks(doc, rng) { if(rng) { var div = doc.createElement("div"); div.appendChild(rng.cloneContents()); doc = div; } var links = doc.getElementsByTagName("a"), a, h; for(var i = 0, len = links.length; i < len; i++) { a = links[i]; h = a.href; if(h) { allLinks[h] = a.textContent; linksCnt++; } } } function parseNodes(win) { try { var sel = null; var sel = win.getSelection(); var rngCnt = sel.rangeCount; if(rngCnt == 0) { getLinks(win.document, null); return; } for(var i = 0; i < rngCnt; i++) getLinks(win.document, sel.getRangeAt(i)); } catch(e) { err("parseNodes error:\n" + e); } } function parseWin(win) { parseNodes(win); for(var i = 0, len = win.frames.length; i < len; i++) parseWin(win.frames[i]); } parseWin(window); function deselect(win) { try { win.getSelection().removeAllRanges(); } catch(e) { err("deselect error:\n" + e); } for(var i = 0, len = win.frames.length; i < len; i++) deselect(win.frames[i]); } if(linksCnt == 0) { deselect(window); parseWin(window); } if(linksCnt == 0) { alert("Ссылок нет!"); return; } var body = document.body; var _body; if(body.nodeName.toLowerCase() != "body") { _body = document.createElement("body"); document.documentElement.appendChild(_body); body = _body; } var head = document.getElementsByTagName("head")[0]; var addedStl = null; if(head) { addedStl = document.createElement("style"); addedStl.type = "text/css"; var linkStl = "color: #00b !important;\n" + "border: none !important;\n" + "outline: none !important;\n" + "margin: 0 !important;\n" + "padding: 0 !important;\n" + "background: none !important;\n" + "opacity: 1.0 !important;\n" + "position: static !important;\n" + "font: 13px \"Courier New\",monospace !important;\n"; addedStl.appendChild(document.createTextNode( "div." + containerClass + " > a {\n" + linkStl + "text-decoration: none !important;\n" + "}\n" + "div." + containerClass + " > a:hover {\n" + linkStl + "text-decoration: underline !important;\n" + "}\n" + "object { visibility: hidden !important; }" )); head.appendChild(addedStl); } var container = document.createElement("div"); var cBorder = 20; var mHeight = window.innerHeight - cBorder*2; var bHeight = 28; container.setAttribute( "style", "position: fixed !important; " + "color: black !important; " + "background-color: white !important; " + "z-index: 65535 !important; " + "text-align: left !important; " + "top: " + cBorder + "px !important; " + "left: " + cBorder + "px !important; " + "right: " + cBorder + "px !important; " + "max-height: " + mHeight + "px !important; " + "background-color: #f8f8f8 !important; " + "border: 1px solid #00a !important; " + "padding: 2px 6px !important; " + "opacity: 0.9 !important; " + "display: block !important; " + "margin: 0 !important; " + "outline: none !important; " ); var _cnt = document.createElement("div"); _cnt.setAttribute( "style", "overflow: auto !important; " + "max-height: " + (mHeight - bHeight) + "px !important; " + "display: block !important; " + "margin: 0 !important; " + "padding: 0 !important; " + "border: none !important; " + "outline: none !important; " + "opacity: 1.0 !important; " ); container.appendChild(_cnt); var linksContainer = document.createElement("div"); linksContainer.setAttribute( "style", "display: block !important; " ); _cnt.appendChild(linksContainer); function appendButton(fnc, lbl) { var btt = document.createElement("button"); btt.onclick = fnc; btt.setAttribute( "style", "margin: 0 4px 4px 0 !important; " + "height: " + (bHeight - 4) + "px !important; " + "font-size: 13px !important; " ); btt.appendChild(document.createTextNode(lbl)); container.insertBefore(btt, _cnt); } window.__removeLinksList = function() { if(addedStl) addedStl.parentNode.removeChild(addedStl); container.parentNode.removeChild(container); if(_body) _body.parentNode.removeChild(_body); delete(window.__removeLinksList); }; appendButton( window.__removeLinksList, "Закрыть" ); function selectAll() { deselect(window); var rng = document.createRange(); rng.selectNode(linksContainer); window.getSelection().addRange(rng); } appendButton( selectAll, "Выделить всё" ); var linkContainer = document.createElement("div"); linkContainer.setAttribute( "style", "display: block !important;" ); linkContainer.className = containerClass; function appendLinks(regexp) { while(linksContainer.hasChildNodes()) linksContainer.removeChild(linksContainer.lastChild); var _regexp = !!regexp; var a, cnt, num = 0; for(var h in allLinks) { if(_regexp && !regexp.test(h)) continue; a = document.createElement("a"); cnt = linkContainer.cloneNode(false); if(num++ % 2) cnt.style.backgroundColor = "#e9e9e9"; a.href = h; a.appendChild(document.createTextNode(h)); a.title = allLinks[h]; cnt.appendChild(a); linksContainer.appendChild(cnt); } } var fltStr = document.createElement("input"); fltStr.type = "text"; fltStr.setAttribute( "style", "width: 200px !important;" + "background: white !important;\n" ); function filter(str) { try { var regexp = new RegExp(str); fltStr.style.setProperty("background", "white", "important"); } catch(e) { fltStr.style.setProperty("background", "#fee", "important"); return; } appendLinks(regexp); } var _timeout = null; fltStr.onkeypress = function() { var _this = this; clearTimeout(_timeout); _timeout = setTimeout(function() { filter(_this.value); }, 300); }; container.insertBefore(document.createTextNode("Фильтр (RegExp): "), _cnt); container.insertBefore(fltStr, _cnt); appendLinks(); body.appendChild(container); selectAll(); })();
Оригинал без удаления переводов строк: all_links.js
RegExp'ы нужны для личного использования.
Общий принцип: если ругается (подкрашивает фон светло-красным), значит, символ нужно «экранировать» («?» → «\?»).
«.» – любой символ, «.*» – любое количество любых символов, «\.» – точка.
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
Лия
https://addons.mozilla.org/en-US/firefox/addon/6677 интересует? Или уже было?
Отсутствует
MySh
В окне информации о странице, ясное дело Переключаюсь на панель вывода ссылок
Упорно не понимаю Там четыре закладки, ссылки выводятся на двух: на "Мультимедиа" и на "Ленты новостей". В первой все ссылки на изображения - "простых" ссылок нет, во-второй на RSS потоки.
Infocatcher
Воспользовалась. Еще более благодарна.
Al_H
Не видела, спасибо. Утащу прозапас.
Отсутствует
Лия для тебя - всегда пожалуйста.
Добавлено 16-10-2008 14:59:25
Лия,Infocatcher
RegExp'ы нужны для личного использования.
Тогда уж http://www.regular-expressions.info/ или книга Джефри Фридла.
Инструмент очень мощный, если научиться пользоваться.
Отсутствует
krigstask
Аригато!
v3.14
Вот называется покажешь кому-нить прикол, так сразу каменты писать начнут )) что за манеры
F.I.R.E.F.O.X.: Fearsome, Intimidating, Redhead-Eating Fiend from the Ominous Xenopolis
Скиньтесь мне на новый MacBook Pro! Кто сколько может!
Отсутствует