Создать список WEB-ссылок / запустить их в браузере

Обсуждение вопросов автоматизации Total Commander с помощью сторонних программ и скриптовых технологий.

Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер

Loopback
Сообщения: 1646
Зарегистрирован: Пн сен 07, 2009 09:29

Сообщение Loopback »

Flasher писал(а):Но пока так и не удалось вытащить ссылки из Орки и Айрона с учётом вышеописанного. Даже пути прописал полные для точности:
Проверил файлы из последнего поста - всё работает. Видимо ошибка с записью путей, ты их прописывал после ";" - а это комментарий. Попробуй так:

Код: Выделить всё

$aResults[1] = _ParseTabList_Orca("c:\Users\Flasher\AppData\Roaming\Orca Profiles\.default\reopen.dat")
$aResults[2] = _ParseTabList_Iron("c:\Users\Flasher\AppData\Local\Chromium\User Data\Default\Last Tabs") 
Кроме того поправил парсер Iron, теперь он дает точные URL, без мусора в конце.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Да, сейчас заработало. Я не обратил внимания на знак комментария, подумал это перечисление путей для парсинга.
Loopback писал(а):Кроме того поправил парсер Iron, теперь он дает точные URL, без мусора в конце.
Что-то плохо, видимо, поправил. Куча старых нетекущих ссылок в результате.
И что там насчёт закрытия?
Loopback
Сообщения: 1646
Зарегистрирован: Пн сен 07, 2009 09:29

Сообщение Loopback »

Flasher писал(а):Что-то плохо, видимо, поправил. Куча старых нетекущих ссылок в результате.
Имелось в виду, что в старой версии в конце некоторых URL оставался мусор.

Увы, я формата этого файла не знаю, скрипт просто выбирает все найденные URL. Лучше тут вряд ли сделаешь.

Закрытие браузеров и хамелеон вечером, сейчас уезжаю.
Аватара пользователя
Andrey_A
Сообщения: 394
Зарегистрирован: Пт апр 10, 2009 06:28
Откуда: Сочи
Контактная информация:

Сообщение Andrey_A »

Скрипт работает. Имею возможность проверить только на опере. Есть несколько предложений по функциональности.
1. У оперы (и у других браузеров) может быть несколько (копий) путей. одна портабельная, другая в системе, третья пользуется брат... Хотелось бы иметь возможность прописывать разные пути оперы и других браузеров:
$aResults[0] = _ParseTabList_Opera("")
$aResults[1] = _ParseTabList_Opera("")
...

и чтобы скрипт проверял и сохранял разные файлы:
urllist_opera_1.txt
urllist_opera_2.txt
urllist_orca_1.txt или urllist_orca_3
urllist_orca_2.txt или urllist_orca_4
....
2. Внести функцию разворачивания переменных окружения, чтобы %COMMANDER_PATH% прочитывался

3. Внести внешний параметр: путь сохранения результата.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Andrey_A писал(а):Хотелось бы иметь возможность прописывать разные пути оперы и других браузеров:
$aResults[0] = _ParseTabList_Opera("")
$aResults[1] = _ParseTabList_Opera("")
А сейчас не работает?
Andrey_A писал(а):и чтобы скрипт проверял и сохранял разные файлы:
Ну, это вообще не к моему ТЗ. Мне-то как раз нужно все вместе склеивать и запускать. Да и какой вообще в этом смысл? Проще сессии сохранять в таком случае.
Andrey_A писал(а):Внести функцию разворачивания переменных окружения
А ты не заметил, что они уже там присутствуют? @AppDataDir, @UserProfileDir.
Andrey_A писал(а): Внести внешний параметр: путь сохранения результата.
Хотел об этом сам написать, но пока рано. Нужно решить с основной задачей. Короче говоря, всё в порядке поступления.
Loopback
Сообщения: 1646
Зарегистрирован: Пн сен 07, 2009 09:29

Сообщение Loopback »

Flasher
Парсер хамелеона сделал. Закрытие сделал тоже, поставил ожидание закрытия окна, так что процесс это может быть небыстрый. У меня, например, опера с тремя десятками окон может выгружаться по полторы-две минуты. В какой момент она запишет окна - кто ее знает. Попробуй, если работать не будет, возможно придется отслеживать закрытие процесса.
Andrey_A писал(а):Хотелось бы иметь возможность прописывать разные пути оперы и других браузеров:
Это можно делать и сейчас. Каждый парсер оформлен в функцию, ее можно вызывать несколько раз с разными именами файлов. Функция возвращает массив ссылок. Если хочется сохранить их отдельно - просто можно сохранять строки каждого этого массива в свои файлы. Вот функция сохранения массива в файл:

Код: Выделить всё

Func _ArraySave(ByRef $aArray, $sFileName)
    Local $hFile = FileOpen($sFileName, 2)
    For $i = 0 To UBound($aArray) - 1
        FileWriteLine($hFile, $aArray[$i])
    Next
    FileClose($hFile)
EndFunc
Andrey_A писал(а):Внести функцию разворачивания переменных окружения, чтобы %COMMANDER_PATH% прочитывался
В данной задаче вообще непонятно, к чему может понадобится эта переменная, да и другие в общем-то, кроме профиля пользователя. Если нужно развернуть любые переменные в строке - используй функцию:

Код: Выделить всё

Func _TCHExpandEnv($sText)
    $aResult = StringRegExp($sText, "%(\w+)%", 3)
    If IsArray($aResult) Then
        For $i = 0 To UBound($aResult)-1
            $sText = StringReplace($sText, "%" & $aResult[$i] & "%", EnvGet($aResult[$i]))
        Next
    EndIf
    Return $sText
EndFunc
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Так. Добрался до инета.
Loopback писал(а):Парсер хамелеона сделал. Закрытие сделал тоже, поставил ожидание закрытия окна, так что процесс это может быть небыстрый. У меня, например, опера с тремя десятками окон может выгружаться по полторы-две минуты. В какой момент она запишет окна - кто ее знает. Попробуй, если работать не будет, возможно придется отслеживать закрытие процесса.
Спасибо! Работает с указанием полных путей. Поставил слипы себе поменьше. Только я так до сих пор и не понял, почему маски * и ??? не действуют? Ещё бы хотелось исключать из списка ссылок гуглопоиск. Это можно? А то с Current Tabs перебор полный.
Loopback писал(а):Если хочется сохранить их отдельно - просто можно сохранять строки каждого этого массива в свои файлы.
Я в этом вообще необходимости не вижу. Ему нужно скорей несколько копий скрипта запуска ссылок по распарсенным файлам autosave.win каждой Оперы без всяких файлов посредников, как в моём случае.
Loopback писал(а):В данной задаче вообще непонятно, к чему может понадобится эта переменная, да и другие в общем-то, кроме профиля пользователя.
Профиль с папкой браузера может быть сохранён на флешке и, возможно, в папке ТС. Т.к. при подключении флешка может монтироваться с разной буквой диска в зависимости от мест применения, то считаю вполне резонным задействовать псевдопеременные среды %COMMANDER_DRIVE% и %COMMANDER_PATH%.
Loopback
Сообщения: 1646
Зарегистрирован: Пн сен 07, 2009 09:29

Сообщение Loopback »

Flasher писал(а):Только я так до сих пор и не понял, почему маски * и ??? не действуют?
А с чего бы им работать? Они применимы только в функциях поиска, ну и еще некоторых функциях (копирование/удаление файлов). Функции парсеров принимают полное имя файла, а уж как оно будет задано при вызове функции - жестко прописано или как-то найдено - вопрос другой.
Flasher писал(а):щё бы хотелось исключать из списка ссылок гуглопоиск. Это можно?
Глобально или только для Iron? Лучше какой-нибудь список исключений сделать. И лучше, конечно, глобальный.
Flasher писал(а):то считаю вполне резонным задействовать псевдопеременные среды %COMMANDER_DRIVE% и %COMMANDER_PATH%.
Ну я выше давал функцию _TCHExpandEnv - она это и делает.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Loopback писал(а):Глобально или только для Iron? Лучше какой-нибудь список исключений сделать. И лучше, конечно, глобальный
Для Iron, думаю. С остальными же таких проблем нет. Насчёт списка не понял. Для чего он?
Loopback писал(а):Ну я выше давал функцию _TCHExpandEnv - она это и делает.
Я понимаю, я только прояснил необходимость использования.
Loopback
Сообщения: 1646
Зарегистрирован: Пн сен 07, 2009 09:29

Сообщение Loopback »

Flasher писал(а):Насчёт списка не понял. Для чего он?
Ну, можно написать условие для одного URL, но в случае чего добавлять новые сложно. Лучше это оформлять как простейший список внутри скрипта.

Список исключений добавил.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Loopback
Спасибо! Понял к чему ты. Теперь пояснения требуются. Вижу строку

Код: Выделить всё

Local $aExcList[1] = ["http://google.com"]
Далее, хочу добавить "http://google.ru", "http://ru.search.yahoo.com/search?p=" и т.п. Мои действия?
Loopback
Сообщения: 1646
Зарегистрирован: Пн сен 07, 2009 09:29

Сообщение Loopback »

Flasher
Хотел ведь сразу пояснить - забыл :)

Код: Выделить всё

Local $aExcList[3] = ["http://google.com", "http://ru.search.yahoo.com/search?p=", "http://google.ru"]
Число в индексе переменной = числу ссылок. Либо так:

Код: Выделить всё

Local $aExcList[3]
$aExcList[0] = "http://google.com"
$aExcList[1] = "http://ru.search.yahoo.com/search?p="
$aExcList[2] = "http://google.ru"
Последний раз редактировалось Loopback Вт ноя 30, 2010 13:20, всего редактировалось 1 раз.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Loopback
Понял. Спасибо! :)

Добавлено: что-то исключения не работают. Гуглопоиск с google.com всё равно добавляется.
Loopback
Сообщения: 1646
Зарегистрирован: Пн сен 07, 2009 09:29

Сообщение Loopback »

Flasher писал(а):Добавлено: что-то исключения не работают. Гуглопоиск с google.com всё равно добавляется.
Хм, у меня работают. Может где ошибка в написании? Какую строку для гугла задаешь?

А может поиск вообще из других браузеров берется?
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Loopback
Вроде ошибок нет, проверял с новой версией скрипта.
Строку для поиска? А какая разница?
Поиск точно не в других браузерах.
Ответить