Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Создать список WEB-ссылок / запустить их в браузере
Goto page Previous  1, 2, 3, 4, 5  Next
 
Post new topic   Reply to topic    Total Commander Forum Index -> Автоматизация Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
Loopback



Joined: 07 Sep 2009
Posts: 1551

Post (Separately) Posted: Sat Nov 27, 2010 13:42    Post subject: Reply with quote

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
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Sat Nov 27, 2010 14:03    Post subject: Reply with quote

Да, сейчас заработало. Я не обратил внимания на знак комментария, подумал это перечисление путей для парсинга.
Loopback wrote:
Кроме того поправил парсер Iron, теперь он дает точные URL, без мусора в конце.
Что-то плохо, видимо, поправил. Куча старых нетекущих ссылок в результате.
И что там насчёт закрытия?
Back to top
View user's profile Send private message
Loopback



Joined: 07 Sep 2009
Posts: 1551

Post (Separately) Posted: Sat Nov 27, 2010 14:09    Post subject: Reply with quote

Flasher wrote:
Что-то плохо, видимо, поправил. Куча старых нетекущих ссылок в результате.

Имелось в виду, что в старой версии в конце некоторых URL оставался мусор.

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

Закрытие браузеров и хамелеон вечером, сейчас уезжаю.
Back to top
View user's profile Send private message
Andrey_A



Joined: 10 Apr 2009
Posts: 394
Location: Сочи

Post (Separately) Posted: Sat Nov 27, 2010 15:57    Post subject: Reply with quote

Скрипт работает. Имею возможность проверить только на опере. Есть несколько предложений по функциональности.
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
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Sat Nov 27, 2010 16:45    Post subject: Reply with quote

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
View user's profile Send private message
Loopback



Joined: 07 Sep 2009
Posts: 1551

Post (Separately) Posted: Sat Nov 27, 2010 23:51    Post subject: Reply with quote

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
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Sun Nov 28, 2010 15:43    Post subject: Reply with quote

Так. Добрался до инета.
Loopback wrote:
Парсер хамелеона сделал. Закрытие сделал тоже, поставил ожидание закрытия окна, так что процесс это может быть небыстрый. У меня, например, опера с тремя десятками окон может выгружаться по полторы-две минуты. В какой момент она запишет окна - кто ее знает. Попробуй, если работать не будет, возможно придется отслеживать закрытие процесса.
Спасибо! Работает с указанием полных путей. Поставил слипы себе поменьше. Только я так до сих пор и не понял, почему маски * и ??? не действуют? Ещё бы хотелось исключать из списка ссылок гуглопоиск. Это можно? А то с Current Tabs перебор полный.
Loopback wrote:
Если хочется сохранить их отдельно - просто можно сохранять строки каждого этого массива в свои файлы.
Я в этом вообще необходимости не вижу. Ему нужно скорей несколько копий скрипта запуска ссылок по распарсенным файлам autosave.win каждой Оперы без всяких файлов посредников, как в моём случае.
Loopback wrote:
В данной задаче вообще непонятно, к чему может понадобится эта переменная, да и другие в общем-то, кроме профиля пользователя.
Профиль с папкой браузера может быть сохранён на флешке и, возможно, в папке ТС. Т.к. при подключении флешка может монтироваться с разной буквой диска в зависимости от мест применения, то считаю вполне резонным задействовать псевдопеременные среды %COMMANDER_DRIVE% и %COMMANDER_PATH%.
Back to top
View user's profile Send private message
Loopback



Joined: 07 Sep 2009
Posts: 1551

Post (Separately) Posted: Mon Nov 29, 2010 12:22    Post subject: Reply with quote

Flasher wrote:
Только я так до сих пор и не понял, почему маски * и ??? не действуют?

А с чего бы им работать? Они применимы только в функциях поиска, ну и еще некоторых функциях (копирование/удаление файлов). Функции парсеров принимают полное имя файла, а уж как оно будет задано при вызове функции - жестко прописано или как-то найдено - вопрос другой.
Flasher wrote:
щё бы хотелось исключать из списка ссылок гуглопоиск. Это можно?

Глобально или только для Iron? Лучше какой-нибудь список исключений сделать. И лучше, конечно, глобальный.
Flasher wrote:
то считаю вполне резонным задействовать псевдопеременные среды %COMMANDER_DRIVE% и %COMMANDER_PATH%.

Ну я выше давал функцию _TCHExpandEnv - она это и делает.
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Mon Nov 29, 2010 13:46    Post subject: Reply with quote

Loopback wrote:
Глобально или только для Iron? Лучше какой-нибудь список исключений сделать. И лучше, конечно, глобальный
Для Iron, думаю. С остальными же таких проблем нет. Насчёт списка не понял. Для чего он?
Loopback wrote:
Ну я выше давал функцию _TCHExpandEnv - она это и делает.
Я понимаю, я только прояснил необходимость использования.
Back to top
View user's profile Send private message
Loopback



Joined: 07 Sep 2009
Posts: 1551

Post (Separately) Posted: Tue Nov 30, 2010 12:58    Post subject: Reply with quote

Flasher wrote:
Насчёт списка не понял. Для чего он?

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

Список исключений добавил.
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Tue Nov 30, 2010 13:31    Post subject: Reply with quote

Loopback
Спасибо! Понял к чему ты. Теперь пояснения требуются. Вижу строку
Code:
Local $aExcList[1] = ["http://google.com"]
Далее, хочу добавить "http://google.ru", "http://ru.search.yahoo.com/search?p=" и т.п. Мои действия?
Back to top
View user's profile Send private message
Loopback



Joined: 07 Sep 2009
Posts: 1551

Post (Separately) Posted: Tue Nov 30, 2010 14:18    Post subject: Reply with quote

Flasher
Хотел ведь сразу пояснить - забыл Smile
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
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Tue Nov 30, 2010 17:32    Post subject: Reply with quote

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

Добавлено: что-то исключения не работают. Гуглопоиск с google.com всё равно добавляется.
Back to top
View user's profile Send private message
Loopback



Joined: 07 Sep 2009
Posts: 1551

Post (Separately) Posted: Tue Nov 30, 2010 23:30    Post subject: Reply with quote

Flasher wrote:
Добавлено: что-то исключения не работают. Гуглопоиск с google.com всё равно добавляется.

Хм, у меня работают. Может где ошибка в написании? Какую строку для гугла задаешь?

А может поиск вообще из других браузеров берется?
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Wed Dec 01, 2010 11:06    Post subject: Reply with quote

Loopback
Вроде ошибок нет, проверял с новой версией скрипта.
Строку для поиска? А какая разница?
Поиск точно не в других браузерах.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Автоматизация Total Commander All times are GMT + 4 Hours
Goto page Previous  1, 2, 3, 4, 5  Next
Page 4 of 5

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group