Pull to refresh

Comments 12

А почему всё-таки не через API? Там есть получение сообщений из диалога, ну а в объекте сообщения к которому приложена картинка есть ссылка на неё.
UFO just landed and posted this here
Ничего сложного в документации нет, можно было сделать все быстрее и консольно, и не нужно было городить велосипед.
Мне кажется вы немного всё усложнили.
После открытия материалов диалога, скопировал ноду содержащую картинки
Дальше, ползуясь sublime, произвел две замены:
jpg на jpg\n
и
src на \nsrc
после чего удалил все строки начинающиеся не с src.
A затем удалил и сам src, получив список ссылок на картинки.

Дальше ничего интересного:
cat imgs | while read line
do
wget line
done

Кoнечно, все замены можно было бы сделать одной командой sed — но вспоминание особенностей синтаксиса заняло бы больше времени, чем эти 3 замены.

Для знакомства с языком — почему бы и нет. В качестве единоразовой задачи — моё решение заняло 3 минуты. У вас исходники читаются дольшe.
Проблема вашего решения заключается в том, что для каждого диалога нужно ручками скроллить вниз список фотографий, а потом вставлять все в sublime, вручную запускать rex exp и.т.д. Тогда как решение shrikimaru при должных оптимизациях позволит скопировать все изображения из всех диалогов. К тому же для изучения питона (и я так понимаю еще и получение инвайта) статья очень и очень годная. Песочница-жи
Это не столько проблема, сколько критерий выбора данного решения.

Если вам нужно каждый день доставать фотографии из 20 диалогов — конечно, лучше автоматизировать процесс полностью. Если же это задача выполняется хотя бы 1 раз в месяц — время, затраченное на эти «должные оптимизации» окупиться совсем не скоро.

Конечно, обучения годятся любые задачи, тем более хорошо если они приносят пользу.
Мне кажется это будет дольше перебирать все сообщения (коих может быть овер 50000) и проверять у каждого есть ли там приложенный объект и извлекать в случае если есть. Гораздо быстрее обратиться «напрямую».
Я так понял, у вас тоже не за один раз достаются все изображения из диалога? Через api за один запрос к серверу (с помощью execute) можно получить 200*25=5000 сообщений, запросов можно делать до трёх в секунду — получается в идеале 15к сообщений в секунду. Время локальной обработки полученных сообщений можно вообще не учитывать :)

Ещё конечно плюс будет в том, что так можно достать не только картинки, а любую информацию.
Да, не за один раз, но у меня не происходит лишних запросов, как например в случае, если вытаскивать ссылки через api (будет много лишнего мусора, в котором не факт что содержится ссылка на картинку), а все идет только по делу. Но я с вами соглашусь, что с такой скоростью отдачи сообщений через api этот вариант тоже пригоден.
Что касается извлечения любой информации — да, вы правы. Но в данном случае мне нужны были только фотографии.
UFO just landed and posted this here
Похоже, нужно учить Питон, а то тут вон какие интересности :).

off-top
Кстати. Слово «Всем» не нужно отбивать запятой, потому что это не обращение. «Всем» вообще не может быть обращением, потому что падеж неправильный — любое обращение стоит только в именительном, обращением может быть только «все». Обычно, кстати, не будет: «Все на борьбу с Деникиным» — без запятой, потому что это «Все [должны идти] на борьбу с Деникиным». «До свидания, все» — с запятой, потому что это обращение к группе «все». Общий признак — обращение можно выбросить из предложения, и предложение полностью сохранит смысл — исчезнет только адресация к конкретному человеку или группе.

Так что проверка простая. Падеж именительный? Если да — можно ли выбросить? «Андрей, смотри бодрей» — можно. «Андрей опаздывает» — уже нельзя. Первое — обращение, второе — подлежащее :).

А то очень режет глаз выделение запятыми любых местоимений :).
on-top
Sign up to leave a comment.

Articles