Страница 4 из 5
Добавлено: Сб ноя 27, 2010 12:42
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, без мусора в конце.
Добавлено: Сб ноя 27, 2010 13:03
Flasher
Да, сейчас заработало. Я не обратил внимания на знак комментария, подумал это перечисление путей для парсинга.
Loopback писал(а):Кроме того поправил парсер Iron, теперь он дает точные URL, без мусора в конце.
Что-то плохо, видимо, поправил. Куча старых нетекущих ссылок в результате.
И что там насчёт закрытия?
Добавлено: Сб ноя 27, 2010 13:09
Loopback
Flasher писал(а):Что-то плохо, видимо, поправил. Куча старых нетекущих ссылок в результате.
Имелось в виду, что в старой версии в конце некоторых URL оставался мусор.
Увы, я формата этого файла не знаю, скрипт просто выбирает все найденные URL. Лучше тут вряд ли сделаешь.
Закрытие браузеров и хамелеон вечером, сейчас уезжаю.
Добавлено: Сб ноя 27, 2010 14:57
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. Внести внешний параметр: путь сохранения результата.
Добавлено: Сб ноя 27, 2010 15:45
Flasher
Andrey_A писал(а):Хотелось бы иметь возможность прописывать разные пути оперы и других браузеров:
$aResults[0] = _ParseTabList_Opera("")
$aResults[1] = _ParseTabList_Opera("")
А сейчас не работает?
Andrey_A писал(а):и чтобы скрипт проверял и сохранял разные файлы:
Ну, это вообще не к моему ТЗ. Мне-то как раз нужно все вместе склеивать и запускать. Да и какой вообще в этом смысл? Проще сессии сохранять в таком случае.
Andrey_A писал(а):Внести функцию разворачивания переменных окружения
А ты не заметил, что они уже там присутствуют? @AppDataDir, @UserProfileDir.
Andrey_A писал(а): Внести внешний параметр: путь сохранения результата.
Хотел об этом сам написать, но пока рано. Нужно решить с основной задачей. Короче говоря, всё в порядке поступления.
Добавлено: Сб ноя 27, 2010 22:51
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
Добавлено: Вс ноя 28, 2010 14:43
Flasher
Так. Добрался до инета.
Loopback писал(а):Парсер хамелеона сделал. Закрытие сделал тоже, поставил ожидание закрытия окна, так что процесс это может быть небыстрый. У меня, например, опера с тремя десятками окон может выгружаться по полторы-две минуты. В какой момент она запишет окна - кто ее знает. Попробуй, если работать не будет, возможно придется отслеживать закрытие процесса.
Спасибо! Работает с указанием полных путей. Поставил слипы себе поменьше. Только я так до сих пор и не понял, почему маски * и ??? не действуют? Ещё бы хотелось исключать из списка ссылок гуглопоиск. Это можно? А то с Current Tabs перебор полный.
Loopback писал(а):Если хочется сохранить их отдельно - просто можно сохранять строки каждого этого массива в свои файлы.
Я в этом вообще необходимости не вижу. Ему нужно скорей несколько копий скрипта запуска ссылок по распарсенным файлам autosave.win каждой Оперы без всяких файлов посредников, как в моём случае.
Loopback писал(а):В данной задаче вообще непонятно, к чему может понадобится эта переменная, да и другие в общем-то, кроме профиля пользователя.
Профиль с папкой браузера может быть сохранён на флешке и, возможно, в папке ТС. Т.к. при подключении флешка может монтироваться с разной буквой диска в зависимости от мест применения, то считаю вполне резонным задействовать псевдопеременные среды %COMMANDER_DRIVE% и %COMMANDER_PATH%.
Добавлено: Пн ноя 29, 2010 11:22
Loopback
Flasher писал(а):Только я так до сих пор и не понял, почему маски * и ??? не действуют?
А с чего бы им работать? Они применимы только в функциях поиска, ну и еще некоторых функциях (копирование/удаление файлов). Функции парсеров принимают полное имя файла, а уж как оно будет задано при вызове функции - жестко прописано или как-то найдено - вопрос другой.
Flasher писал(а):щё бы хотелось исключать из списка ссылок гуглопоиск. Это можно?
Глобально или только для Iron? Лучше какой-нибудь список исключений сделать. И лучше, конечно, глобальный.
Flasher писал(а):то считаю вполне резонным задействовать псевдопеременные среды %COMMANDER_DRIVE% и %COMMANDER_PATH%.
Ну я выше давал функцию _TCHExpandEnv - она это и делает.
Добавлено: Пн ноя 29, 2010 12:46
Flasher
Loopback писал(а):Глобально или только для Iron? Лучше какой-нибудь список исключений сделать. И лучше, конечно, глобальный
Для Iron, думаю. С остальными же таких проблем нет. Насчёт списка не понял. Для чего он?
Loopback писал(а):Ну я выше давал функцию _TCHExpandEnv - она это и делает.
Я понимаю, я только прояснил необходимость использования.
Добавлено: Вт ноя 30, 2010 11:58
Loopback
Flasher писал(а):Насчёт списка не понял. Для чего он?
Ну, можно написать условие для одного URL, но в случае чего добавлять новые сложно. Лучше это оформлять как простейший список внутри скрипта.
Список исключений добавил.
Добавлено: Вт ноя 30, 2010 12:31
Flasher
Loopback
Спасибо! Понял к чему ты. Теперь пояснения требуются. Вижу строку
Далее, хочу добавить "
http://google.ru", "
http://ru.search.yahoo.com/search?p=" и т.п. Мои действия?
Добавлено: Вт ноя 30, 2010 13:18
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"
Добавлено: Вт ноя 30, 2010 16:32
Flasher
Loopback
Понял. Спасибо!
Добавлено: что-то исключения не работают. Гуглопоиск с google.com всё равно добавляется.
Добавлено: Вт ноя 30, 2010 22:30
Loopback
Flasher писал(а):Добавлено: что-то исключения не работают. Гуглопоиск с google.com всё равно добавляется.
Хм, у меня работают. Может где ошибка в написании? Какую строку для гугла задаешь?
А может поиск вообще из других браузеров берется?
Добавлено: Ср дек 01, 2010 10:06
Flasher
Loopback
Вроде ошибок нет, проверял с новой версией скрипта.
Строку для поиска? А какая разница?
Поиск точно не в других браузерах.