View previous topic :: View next topic |
Author |
Message |
Loopback
Joined: 07 Sep 2009 Posts: 1551
|
(Separately) Posted: Sat Nov 27, 2010 13:42 Post subject: |
|
|
Flasher wrote: | Но пока так и не удалось вытащить ссылки из Орки и Айрона с учётом вышеописанного. Даже пути прописал полные для точности: |
Проверил файлы из последнего поста - всё работает. Видимо ошибка с записью путей, ты их прописывал после ";" - а это комментарий. Попробуй так:
Code: |
$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, без мусора в конце. |
|
Back to top |
|
 |
Flasher

Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Sat Nov 27, 2010 14:03 Post subject: |
|
|
Да, сейчас заработало. Я не обратил внимания на знак комментария, подумал это перечисление путей для парсинга. Loopback wrote: | Кроме того поправил парсер Iron, теперь он дает точные URL, без мусора в конце. | Что-то плохо, видимо, поправил. Куча старых нетекущих ссылок в результате.
И что там насчёт закрытия? |
|
Back to top |
|
 |
Loopback
Joined: 07 Sep 2009 Posts: 1551
|
(Separately) Posted: Sat Nov 27, 2010 14:09 Post subject: |
|
|
Flasher wrote: | Что-то плохо, видимо, поправил. Куча старых нетекущих ссылок в результате. |
Имелось в виду, что в старой версии в конце некоторых URL оставался мусор.
Увы, я формата этого файла не знаю, скрипт просто выбирает все найденные URL. Лучше тут вряд ли сделаешь.
Закрытие браузеров и хамелеон вечером, сейчас уезжаю. |
|
Back to top |
|
 |
Andrey_A

Joined: 10 Apr 2009 Posts: 394 Location: Сочи
|
(Separately) Posted: Sat Nov 27, 2010 15:57 Post subject: |
|
|
Скрипт работает. Имею возможность проверить только на опере. Есть несколько предложений по функциональности.
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. Внести внешний параметр: путь сохранения результата. |
|
Back to top |
|
 |
Flasher

Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Sat Nov 27, 2010 16:45 Post subject: |
|
|
Andrey_A wrote: | Хотелось бы иметь возможность прописывать разные пути оперы и других браузеров:
$aResults[0] = _ParseTabList_Opera("")
$aResults[1] = _ParseTabList_Opera("") | А сейчас не работает?
Andrey_A wrote: | и чтобы скрипт проверял и сохранял разные файлы: | Ну, это вообще не к моему ТЗ. Мне-то как раз нужно все вместе склеивать и запускать. Да и какой вообще в этом смысл? Проще сессии сохранять в таком случае.
Andrey_A wrote: | Внести функцию разворачивания переменных окружения | А ты не заметил, что они уже там присутствуют? @AppDataDir, @UserProfileDir.
Andrey_A wrote: | Внести внешний параметр: путь сохранения результата. | Хотел об этом сам написать, но пока рано. Нужно решить с основной задачей. Короче говоря, всё в порядке поступления. |
|
Back to top |
|
 |
Loopback
Joined: 07 Sep 2009 Posts: 1551
|
(Separately) Posted: Sat Nov 27, 2010 23:51 Post subject: |
|
|
Flasher
Парсер хамелеона сделал. Закрытие сделал тоже, поставил ожидание закрытия окна, так что процесс это может быть небыстрый. У меня, например, опера с тремя десятками окон может выгружаться по полторы-две минуты. В какой момент она запишет окна - кто ее знает. Попробуй, если работать не будет, возможно придется отслеживать закрытие процесса.
Andrey_A wrote: | Хотелось бы иметь возможность прописывать разные пути оперы и других браузеров: |
Это можно делать и сейчас. Каждый парсер оформлен в функцию, ее можно вызывать несколько раз с разными именами файлов. Функция возвращает массив ссылок. Если хочется сохранить их отдельно - просто можно сохранять строки каждого этого массива в свои файлы. Вот функция сохранения массива в файл:
Code: |
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 wrote: | Внести функцию разворачивания переменных окружения, чтобы %COMMANDER_PATH% прочитывался |
В данной задаче вообще непонятно, к чему может понадобится эта переменная, да и другие в общем-то, кроме профиля пользователя. Если нужно развернуть любые переменные в строке - используй функцию:
Code: |
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
|
|
|
Back to top |
|
 |
Flasher

Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Sun Nov 28, 2010 15:43 Post subject: |
|
|
Так. Добрался до инета. Loopback wrote: | Парсер хамелеона сделал. Закрытие сделал тоже, поставил ожидание закрытия окна, так что процесс это может быть небыстрый. У меня, например, опера с тремя десятками окон может выгружаться по полторы-две минуты. В какой момент она запишет окна - кто ее знает. Попробуй, если работать не будет, возможно придется отслеживать закрытие процесса. | Спасибо! Работает с указанием полных путей. Поставил слипы себе поменьше. Только я так до сих пор и не понял, почему маски * и ??? не действуют? Ещё бы хотелось исключать из списка ссылок гуглопоиск. Это можно? А то с Current Tabs перебор полный.
Loopback wrote: | Если хочется сохранить их отдельно - просто можно сохранять строки каждого этого массива в свои файлы. | Я в этом вообще необходимости не вижу. Ему нужно скорей несколько копий скрипта запуска ссылок по распарсенным файлам autosave.win каждой Оперы без всяких файлов посредников, как в моём случае.
Loopback wrote: | В данной задаче вообще непонятно, к чему может понадобится эта переменная, да и другие в общем-то, кроме профиля пользователя. | Профиль с папкой браузера может быть сохранён на флешке и, возможно, в папке ТС. Т.к. при подключении флешка может монтироваться с разной буквой диска в зависимости от мест применения, то считаю вполне резонным задействовать псевдопеременные среды %COMMANDER_DRIVE% и %COMMANDER_PATH%. |
|
Back to top |
|
 |
Loopback
Joined: 07 Sep 2009 Posts: 1551
|
(Separately) Posted: Mon Nov 29, 2010 12:22 Post subject: |
|
|
Flasher wrote: | Только я так до сих пор и не понял, почему маски * и ??? не действуют? |
А с чего бы им работать? Они применимы только в функциях поиска, ну и еще некоторых функциях (копирование/удаление файлов). Функции парсеров принимают полное имя файла, а уж как оно будет задано при вызове функции - жестко прописано или как-то найдено - вопрос другой.
Flasher wrote: | щё бы хотелось исключать из списка ссылок гуглопоиск. Это можно? |
Глобально или только для Iron? Лучше какой-нибудь список исключений сделать. И лучше, конечно, глобальный.
Flasher wrote: | то считаю вполне резонным задействовать псевдопеременные среды %COMMANDER_DRIVE% и %COMMANDER_PATH%. |
Ну я выше давал функцию _TCHExpandEnv - она это и делает. |
|
Back to top |
|
 |
Flasher

Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Mon Nov 29, 2010 13:46 Post subject: |
|
|
Loopback wrote: | Глобально или только для Iron? Лучше какой-нибудь список исключений сделать. И лучше, конечно, глобальный | Для Iron, думаю. С остальными же таких проблем нет. Насчёт списка не понял. Для чего он? Loopback wrote: | Ну я выше давал функцию _TCHExpandEnv - она это и делает. | Я понимаю, я только прояснил необходимость использования. |
|
Back to top |
|
 |
Loopback
Joined: 07 Sep 2009 Posts: 1551
|
(Separately) Posted: Tue Nov 30, 2010 12:58 Post subject: |
|
|
Flasher wrote: | Насчёт списка не понял. Для чего он? |
Ну, можно написать условие для одного URL, но в случае чего добавлять новые сложно. Лучше это оформлять как простейший список внутри скрипта.
Список исключений добавил. |
|
Back to top |
|
 |
Flasher

Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Tue Nov 30, 2010 13:31 Post subject: |
|
|
Loopback
Спасибо! Понял к чему ты. Теперь пояснения требуются. Вижу строку
Code: | Local $aExcList[1] = ["http://google.com"] | Далее, хочу добавить "http://google.ru", "http://ru.search.yahoo.com/search?p=" и т.п. Мои действия? |
|
Back to top |
|
 |
Loopback
Joined: 07 Sep 2009 Posts: 1551
|
(Separately) Posted: Tue Nov 30, 2010 14:18 Post subject: |
|
|
Flasher
Хотел ведь сразу пояснить - забыл
Code: |
Local $aExcList[3] = ["http://google.com", "http://ru.search.yahoo.com/search?p=", "http://google.ru"]
|
Число в индексе переменной = числу ссылок. Либо так:
Code: |
Local $aExcList[3]
$aExcList[0] = "http://google.com"
$aExcList[1] = "http://ru.search.yahoo.com/search?p="
$aExcList[2] = "http://google.ru"
|
Last edited by Loopback on Tue Nov 30, 2010 14:20; edited 1 time in total |
|
Back to top |
|
 |
Flasher

Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Tue Nov 30, 2010 17:32 Post subject: |
|
|
Loopback
Понял. Спасибо!
Добавлено: что-то исключения не работают. Гуглопоиск с google.com всё равно добавляется. |
|
Back to top |
|
 |
Loopback
Joined: 07 Sep 2009 Posts: 1551
|
(Separately) Posted: Tue Nov 30, 2010 23:30 Post subject: |
|
|
Flasher wrote: | Добавлено: что-то исключения не работают. Гуглопоиск с google.com всё равно добавляется. |
Хм, у меня работают. Может где ошибка в написании? Какую строку для гугла задаешь?
А может поиск вообще из других браузеров берется? |
|
Back to top |
|
 |
Flasher

Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Wed Dec 01, 2010 11:06 Post subject: |
|
|
Loopback
Вроде ошибок нет, проверял с новой версией скрипта.
Строку для поиска? А какая разница?
Поиск точно не в других браузерах. |
|
Back to top |
|
 |
|