• 18680
  • 80
  • 12
Нравится блог?
Подписывайтесь!

Cross post на yVision

В день отлета из Алматы мне захотелось замутить кросс-постинг на yVision со своего блога. Я подумал, что было бы здорово если бы у
меня была, например, такая кнопочка

Попытки погуглить crossposting на yVision ничего не дали. И тогда я поискал что есть у Питона
по этой теме. Остановился я на ClientCookie, ClienForm библиотеках. В тот же день добился вот такого результата, с помошью которого я смог закинуть свой первый Test Post.

 

 

#coding: utf-8
import urllib2, cookielib
import ClientCookie
from ClientForm import *

YVI_LOGIN = "your login"
YVI_PASSWORD = "and password"
# если знаете можно указать ID своего логина
# но не обязательно.
YVI_USER_ID = None

# нам надо получить куки авторизации
request = ClientCookie.Request("http://yvision.kz/auth/")
response = ClientCookie.urlopen(request)

# парсим все формы, на страничке
forms = ParseResponse(response, backwards_compat=False)
# нам нужна вторая, первая это фома поиска
form = forms[1]

# заполняем форму, меням экшн. через аякс данный отправляются именно сюда
form.action = 'http://yvision.kz/ajax/auth/login.php'
form['login'] = YVI_LOGIN
form['password'] = YVI_PASSWORD
request = form.click()
# получили куки
response = ClientCookie.urlopen(request)

# теперь идем на нашу форму добавления поста
request = ClientCookie.Request('http://%s.yvision.kz/manage/article/add' % YVI_LOGIN)

# если надо подрелактировать существующий пост, тогда идем сюда
#POST_ID = 55019
#request = ClientCookie.Request('http://%s.yvision.kz/manage/article/edit/%s' % (YVI_LOGIN,POST_ID))

response = ClientCookie.urlopen(request)
# парсим все формы, на страничке
forms = ParseResponse(response, backwards_compat=False)
# нам нужна третяя, первая это фома поиска, вторая форма логаут
form = forms[2]

# заполняем форму, меням экшн. через аякс данный отправляются именно сюда
form.action = 'http://%s.yvision.kz/ajax/post/article.php?publicate=1' % YVI_LOGIN
form['blog_title'] = "Python-Yvi Crosspost Test"
form['blog_post'] = "<p>Python-Yvi Crosspost Test</p>"
form['blog_tags'] = "test,crosspost"
if YVI_USER_ID is not None:
    form.new_control('hidden','user-id',{'id':'user-id','value':YVI_USER_ID})
form.new_control('hidden','save',{'value':'Сохранить (останется скрытой)'})
form.new_control('hidden','saveexit',{'value':'Опубликовать'})

#form.controls.remove(form.find_control('publ'))
#request.add_header('X-Requested-With', 'XMLHttpRequest')
#request.add_header('X-Prototype-Version', '1.6.0.2')

# постим
request = form.click()
response = ClientCookie.urlopen(request)

 

 

потом начал прикручивать, это дело к своему блогу и тут у меня вышли проблемы с кодировкой.
когда пишешь на русском, выходит exception. И я не смог доделать эту фичу в тот же день.
Мы улeтели в анкару.

И вот сегодня на работе, добравшись до интернета решил снова покопаться.
очень долго сверлил гугл, надеясь нарваться на что-нибудь похожее.
В результате нашел... :) причина оказалось в беспанотовости urllib.quote_plus.
в общем я немного подредактировал ClientForm.py, и все заработало.

вот тут лежит архив c библиотеками и моей реализацией задачи

yvi_crosspost.tar.gz

ну вот. как-то так. вроде работает. :)

29 июня 2010, 20:01
755

Загрузка...

Комментарии

а как же первое из семи правил?)
дык кросс-пост и копи-паст немножко разные вещи, а кросспост дохрена кем нарушается, один самых активных тот же таупорт.кз

на самом деле на правила давно все успешно забили к сожалению и администрация почти ничего не делает для их соблюдения
Поздравляю, ты нашел уязвимость ))) Или я чего-то не понимаю? Ты со своего домена высылаешь данные на юви через post и получаешь в ответ куку? )))
ну не уязвимость.. я как бы имитирую процесс от аутентификации до написания поста. вот если бы там где-то была captcha то не получилось бы.
Я так понимаю, что "имитация процесса аутентификации" - это тоже XSS. Разве нет? Почему я не могу просто так взять и отправить данные методом пост на сайт ВКонтакте.Ру и войти в систему со своего домена?

Оставьте свой комментарий

Спасибо за открытие блога в Yvision.kz! Чтобы убедиться в отсутствии спама, все комментарии новых пользователей проходят премодерацию. Соблюдение правил нашей блог-платформы ускорит ваш переход в категорию надежных пользователей, не нуждающихся в премодерации. Обязательно прочтите наши правила по указанной ссылке: Правила

Также можно нажать Ctrl+Enter

Популярные посты

Обратная сторона Астаны. Девять худших и проблемных районов столицы Казахстана

Обратная сторона Астаны. Девять худших и проблемных районов столицы Казахстана

Несмотря на то, что Астана столица, и один из самых красивых и современных городов Казахстана, здесь все равно есть места, за которые стыдно и даже как-то неудобно перед гостями.
Washington
12 янв. 2017 / 12:25
  • 21767
  • 26
Как мы «скидываемся» на красивую жизнь мажоров. Воровство пенсионных денег

Как мы «скидываемся» на красивую жизнь мажоров. Воровство пенсионных денег

Официальные спикеры КНБ РК рассказали о ходе расследования, раскрыв общественности схему, которую использовало руководство ЕНПФ для воровства 5 миллиардов тенге пенсионных накоплений.
openqazaqstan
13 янв. 2017 / 11:30
  • 14521
  • 16
«Ещё раз на те же грабли». Премьер Сагинтаев о временной регистрации

«Ещё раз на те же грабли». Премьер Сагинтаев о временной регистрации

Казахстанцы по-прежнему с нескрываемым возмущением и сарказмом комментируют нововведения в миграционное законодательство. Проблема, как это ни парадоксально, в том, что мы, казахстанцы – народ законопослушный.
openqazaqstan
12 янв. 2017 / 10:07
  • 11546
  • 29
10 лучших районов Алматы. Широкие улочки, частные дома, летом – красота!

10 лучших районов Алматы. Широкие улочки, частные дома, летом – красота!

Названия улиц: Садовый бульвар, Солнечный проезд. Красиво звучит не так ли? Прям, как в Москве... Уютные улочки и радующие глаз одноэтажные домики, тихо и свободно, нет динамики, движух и ажиотажа.
gelberdeuet
16 янв. 2017 / 14:45
  • 7296
  • 96
Наверное, я себя почувствовала человеком именно в Корее. Не в Казахстане

Наверное, я себя почувствовала человеком именно в Корее. Не в Казахстане

Если я останусь в Казахстане, то идти мне здесь некуда, пахать за копейки на госслужбе? Прожить всю жизнь в однокомнатной вместе с котом и мамой?
savira6
13 янв. 2017 / 9:44
  • 5434
  • 35
Айсулу Салгарина. Решил пойти в гости к той, что вызывает гордость за казахских девушек

Айсулу Салгарина. Решил пойти в гости к той, что вызывает гордость за казахских девушек

Прошло около 2 лет. За эти годы в моей жизни многое изменилось. И мне стало интересно, какие же изменения произошли в жизни тех, у кого я когда-то брал интервью...
DastanIskakov
14 янв. 2017 / 11:43
  • 4712
  • 5
Многочасовые очереди, смерти в ЦОНах: почему вопросы об этом ставят парламентариев в тупик?

Многочасовые очереди, смерти в ЦОНах: почему вопросы об этом ставят парламентариев в тупик?

Ожидали ли депутаты Мажилиса всего этого? Как планировали этот процесс регистрации, и обсуждали ли его, прежде чем одним нажатием кнопки принять нормы с такими абсурдными временными рамками?
openqazaqstan
17 янв. 2017 / 14:32
  • 4224
  • 20
Сейчас даже дяденьки и тетеньки в 20-27 лет живут с родителями. Безработица в Алматы

Сейчас даже дяденьки и тетеньки в 20-27 лет живут с родителями. Безработица в Алматы

Наверняка, все знают крылатую фразу Ленина "Кто не работает - тот не ест" В то время за безработицу осуждали, а кормили народ за счет предприятия - славные были времена, пусть я и застала их лишь...
DoZa
13 янв. 2017 / 9:54
  • 4250
  • 46
Вейпинг безопасен? Эндрю Холл из США тоже так считал, пока что-то не пошло не так

Вейпинг безопасен? Эндрю Холл из США тоже так считал, пока что-то не пошло не так

Эндрю Холл из США считал, что вейпинг безопасен и усиленно убеждал в этом близких. Но как-то раз что-то пошло не так. Это результат взрыва хипстерского устройства - выбило 7 зубов + ожоги и раны...
Maxambet
17 янв. 2017 / 16:28
  • 2932
  • 45