Форум русскоязычного сообщества Ubuntu


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

Автор Тема: Обход noGraffiti на vkontakte.ru  (Прочитано 6900 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Ulltor

  • Автор темы
  • Новичок
  • *
  • Сообщений: 12
    • Просмотр профиля
Обход noGraffiti на vkontakte.ru
« : 20 Июнь 2009, 19:44:47 »
Сегодня я расскажу тебе один способ, как все-таки загрузить граффити на страницу ВКонтакте. Ведь не секрет, что с выходом FlashPlayer 10, пустая страница с наднисью noGraffiti стала знакома многим линуксоидам-пользователям ВКонтакте...

Итак, наметим план действий: мы нарисуем картинку в графическом редакторе, загрузим ее с помощью Python-скрипта и подтвердим в браузере  :) Какие ж мы в конце концов линуксоиды без консоли и скриптов?  ;)

Начнем. Создаем новый рисунок:
  • Тип изображения: png (Формат изображений PNG)
  • Ширина: 586 пикселов
  • Высота: 293 пиксела

Я для этих целей использую GIMP, ты же можешь использовать свой любимый графический редактор. Рисуем на нем свое граффити, сохраняем. Предположим, что мы сохранили его с именем graffiti.png в папку ~/uploader.

В эту же папку сохрани наш скрипт, например, под именем guploader.py:
#!/usr/bin/python

import hashlib
import base64
import pycurl
import os
from StringIO import *

#Based on http://showmecode.com/code/675/ by mayhem
#Translated into class by Ulltor (ulltor@gmail.com)

class GUploader:
    def __init__(self, userID, myID, myEMail, myPassword, myRemixId, graffitiFile):
        self.userID = userID
        self.myID = myID
        self.myEMail = myEMail
        self.myPassword = hashlib.md5(myPassword).hexdigest()
        self.myRemixId = myRemixId
        self.graffitiFile = os.path.abspath(graffitiFile);
        self.curl = pycurl.Curl()
        self.st = StringIO()
   
    def __del__(self):
        self.curl.close()
   
    def pngsigMD5(self):
        pngsize = os.path.getsize(self.graffitiFile)
        pngcontent = open(self.graffitiFile, 'rb').read(pngsize)
        pngsigB64 = base64.b64encode(pngcontent)[0:1024]
        return hashlib.md5(pngsigB64).hexdigest()
   
    def makeCookie(self):
        return 'remixlang=0; remixchk=5; remixautobookmark=14; remixmid=' + self.myID + '; remixemail=' + self.myEMail + '; remixpass=' + self.myPassword + '; remixsid=' + self.myRemixId + ';'         
     
    def config(self):
        def setoptArray(curlObj, optArray):
            for optName, optValue in optArray.iteritems():
                opt = getattr(pycurl, optName)
                curlObj.setopt(opt, optValue)
        options = {
        "URL" : 'http://vkontakte.ru/graffiti.php?to_id=' + self.userID + '&group_id=0',
        "WRITEFUNCTION" : self.st.write,
        "HTTPPOST" : [
            ('Signature', self.pngsigMD5()),
            ('Filedata', (pycurl.FORM_FILE, self.graffitiFile)),
            ('Upload','Submit Query')
        ],
        "REFERER" : 'http://vkontakte.ru/swf/Graffiti.swf?15',
        "USERAGENT" : 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.8) Gecko/2009032609 Firefox/3.0.8 (.NET CLR 3.5.30729) FirePHP/0.2.4',
        "COOKIE" : self.makeCookie(),
        "HTTPHEADER" : [
            'Host: vkontakte.ru',
            'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
            'Accept-Language: ru,en-us;q=0.7,en;q=0.3',
            'Accept-Encoding: gzip,deflate',
            'Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7',
            'Keep-Alive: 300',
            'Connection: keep-alive', 
        ],
        }
        setoptArray(self.curl, options)

    def execute(self):
        self.curl.perform()
       
    def GetValue(self):
        return self.st.getvalue()

#Imperative part begining
       
upl = GUploader(
'ID юзера, на стену которого вешается картинка',
'мой ID',
'мой e-mail в формате username%40example.com',
'мой пароль',
  'мой RemixId',
'graffiti.png')

upl.config()
upl.execute()
Не забудь заменить нужные строки валидную информацию. Подсказка: чтобы узнать свой RemixId, нужно на своей странице ВКонтакте набрать в адресной строке:
javascript:document.write(document.cookie);Там найдешь всю информацию.

Сделай скрипт исполняемым:
$chmod +x guploader.py
Теперь устави нужные пакеты:
$sudo apt-get install python-pycurlPyCurl утянет за собой Python и libcurl.

Самое время питону приняться за работу :)
$./guploader.py
Как только ты снова увидишь приглашение терминала, переходи по ссылке http://vkontakte.ru/graffiti.php?act=last. Любуйся результатом :)

Оффлайн DIEmens

  • Активист
  • *
  • Сообщений: 378
    • Просмотр профиля
Re: Обход noGraffiti на vkontakte.ru
« Ответ #1 : 20 Июнь 2009, 20:13:49 »
записано как бы так
upl = GUploader(
   24740000,
   24740000,
   diemens.1%40gmail.com,
   Password,
    24740000,
   graffiti.png)

пишет:
"./graf.py", line 74
    diemens.1%40gmail.com,
            ^
SyntaxError: invalid syntax
desktop: Ubuntu 10.04 i386
laptop: Ubuntu 10.10 amd64

Оффлайн Ulltor

  • Автор темы
  • Новичок
  • *
  • Сообщений: 12
    • Просмотр профиля
Re: Обход noGraffiti на vkontakte.ru
« Ответ #2 : 20 Июнь 2009, 20:22:59 »
Забыл кавычки везде :) Это ж строковые данные.

Оффлайн MIxan

  • Активист
  • *
  • Сообщений: 285
  • Кто победил, тот и добро!
    • Просмотр профиля
    • Блог вебмастера
Re: Обход noGraffiti на vkontakte.ru
« Ответ #3 : 21 Июнь 2009, 16:05:19 »
ЗачОт, а то меня моя девушка скоро повешает, не может без графити. Ты меня спас чувак!))))))))))))

Оффлайн goldskif

  • Активист
  • *
  • Сообщений: 501
  • www.skif.biz
    • Просмотр профиля
    • Альтернативные проекты
Re: Обход noGraffiti на vkontakte.ru
« Ответ #4 : 21 Июнь 2009, 21:02:06 »
Круто! Вот теперь явно видно преимущество перед виндузятниками. Напихал в контакте всем знакомым рисунков, стилизованных из фоток. На фоне прочей мазни - выглядит очень даже.!!!
Ubuntu дружелюбная система, но друзей  она, сцуко, выбирает сама...

Оффлайн Ulltor

  • Автор темы
  • Новичок
  • *
  • Сообщений: 12
    • Просмотр профиля
Re: Обход noGraffiti на vkontakte.ru
« Ответ #5 : 21 Июнь 2009, 21:10:28 »
Круто! Вот теперь явно видно преимущество перед виндузятниками.
Ну, не совсем так :) И Python, и libcurl - кроссплатформенные проекты, и при определенной сноровке с этой парой можно работать и из винды.
Другое дело, что там установка вышеупомянутого ПО требует больше действий и знаний  :)

Оффлайн 1nsane

  • Любитель
  • *
  • Сообщений: 99
  • Ubuntu 12.04 x86 eMachines e725
    • Просмотр профиля
Re: Обход noGraffiti на vkontakte.ru
« Ответ #6 : 22 Июнь 2009, 09:19:48 »
root@eugene-desktop:/home/eugene# $chmod +x /home/eugene/uploader/guploader.py
bash: +x: команда не найдена

что бы это значило?
waiting for the day that never comes

Оффлайн ArcFi

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 15189
    • Просмотр профиля
    • aetera.net
Re: Обход noGraffiti на vkontakte.ru
« Ответ #7 : 22 Июнь 2009, 09:35:00 »
root@eugene-desktop:/home/eugene# $chmod +x /home/eugene/uploader/guploader.py
bash: +x: команда не найдена

что бы это значило?
1) хватит сидеть от рута;
2) "$" писать не надо.

Оффлайн 1nsane

  • Любитель
  • *
  • Сообщений: 99
  • Ubuntu 12.04 x86 eMachines e725
    • Просмотр профиля
Re: Обход noGraffiti на vkontakte.ru
« Ответ #8 : 23 Июнь 2009, 10:02:31 »
Спасибо! теперь все заработало!)))))))))
waiting for the day that never comes

Оффлайн Lion-Simba

  • Старожил
  • *
  • Сообщений: 1126
    • Просмотр профиля
Re: Обход noGraffiti на vkontakte.ru
« Ответ #9 : 23 Июнь 2009, 11:17:42 »
Товарищи, какбы уже третий велосипед :)

https://launchpad.net/vkontakte-tool
https://forum.ubuntu.ru/index.php?topic=49495.0
Оказываю индивидуальную платную техподдержку широкого профиля. Обращаться в ЛС или Jabber.

Оффлайн Ulltor

  • Автор темы
  • Новичок
  • *
  • Сообщений: 12
    • Просмотр профиля
Re: Обход noGraffiti на vkontakte.ru
« Ответ #10 : 23 Июнь 2009, 13:18:14 »
Ничего, наличие выбора - тоже нужная вещь :)

Пользователь решил продолжить мысль 23 Июнь 2009, 13:33:43:
Да, кстати, совсем забыл: на http://showmecode.com/code/9763/ лежит улучшенная версия, представляющая собой полноценную утилиту командной строки. Больше не надо вручную редактировать скрипты.
« Последнее редактирование: 23 Июнь 2009, 13:33:43 от Ulltor »

Оффлайн Leolik

  • Участник
  • *
  • Сообщений: 159
  • Крымчанин
    • Просмотр профиля
Re: Обход noGraffiti на vkontakte.ru
« Ответ #11 : 13 Август 2009, 04:16:09 »
эта тема еще работает или нет? сколько не пытаюсь с помощью этого скрипта (использую последнюю версию) отправить граффити, все равно на странице http://vkontakte.ru/graffiti.php?act=last пишет noGraffiti
хотя скрипт отрабатывает нормально
Configuring POST quiery...
Everything is ready.
Sending data. Please wait...
Visit http://vkontakte.ru/graffiti.php?act=last to submit your graffiti.

Оффлайн Ulltor

  • Автор темы
  • Новичок
  • *
  • Сообщений: 12
    • Просмотр профиля
Re: Обход noGraffiti на vkontakte.ru
« Ответ #12 : 13 Август 2009, 06:15:43 »
Есть уже более интересное решение в соседней теме: GreaseMonkey-скрипт, иправляющий эту ошибку.

Оффлайн Leolik

  • Участник
  • *
  • Сообщений: 159
  • Крымчанин
    • Просмотр профиля
Re: Обход noGraffiti на vkontakte.ru
« Ответ #13 : 13 Август 2009, 06:22:13 »
Есть уже более интересное решение в соседней теме: GreaseMonkey-скрипт, иправляющий эту ошибку.
Да про это я в курсе, только мне этот скрипт намного интереснее в плане добавления своих картинок, как граффити
так что, скриптом уже вообще никто не занимается?

Оффлайн Ulltor

  • Автор темы
  • Новичок
  • *
  • Сообщений: 12
    • Просмотр профиля
Re: Обход noGraffiti на vkontakte.ru
« Ответ #14 : 13 Август 2009, 06:37:48 »
Проверил только что: все работает. Загрузил себе на стенку рисунок.

Пользователь решил продолжить мысль 13 Август 2009, 06:39:36:
Проверь еще раз правильность ввода мыла, пароля и ID - я не встраивал проверки правильности.
« Последнее редактирование: 13 Август 2009, 06:39:36 от Ulltor »

 

Страница сгенерирована за 0.082 секунд. Запросов: 24.