Блог по программированию в среде Delphi

Поиск по блогу

Есть идея по созданию интересной программы?

Опиши тут и я по возможности постараюсь это реализовать специально для тебя! Без $ ))

понедельник, 9 июля 2012 г.

Удаление истории статусов из блога mblogi.qip

После того как случайно наткнулся на историю статусов квипа решил по удалять их, но дело это оказалось весьма муторным в связи с тормозами сайта. Стало лень, а лень-это двигатель прогресса написал вот такую утилиту для этого дела. Программа удаляет все сообщения из блога  mblogi.qip собственно я и не знал, что у меня там блог ведется)) и решил почистить инет от говна))

Исходный код программы представлен ниже:



unit untMain;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TfrmMain = class(TForm)
    btnAutorize: TButton;
    edtLogin: TEdit;
    edtPass: TEdit;
    edtCount: TEdit;
    lblLogin: TLabel;
    lblPass: TLabel;
    lblCount: TLabel;
    mmoLog: TMemo;
    lblLog: TLabel;
    edtAutor: TEdit;
    procedure btnAutorizeClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

const
    sUrl='http://mblogi.qip.ru/api/recv?method=';

var
  frmMain: TfrmMain;

implementation
uses
  msxml, superobject,IdURI;
{$R *.dfm}



procedure TfrmMain.btnAutorizeClick(Sender: TObject);
var
  req: IXMLHttpRequest;
  o: ISuperObject;
  sSid,sMsgId,sTemp:string;
  jsobArray:TSuperArray;
  Pairs: TSuperEnumerator;

begin
  req := CoXMLHTTP.Create;
  try
    //авторизация
    req.open('GET', sUrl+'mblogi.auth.getsid&params={"user":"'+edtLogin.Text+'","password":"'+edtPass.Text+'"}', false, EmptyParam, EmptyParam);
    req.send(EmptyParam);
    sTemp:=req.responseText;
    if AnsiPos('NOT_AUTH_SES_CLOSE',sTemp)<>0 then
    begin
      mmoLog.Lines.Add('Ошибка при авторизации!');
      raise Exception.Create('Не верный логин или пароль!');
    end;
    mmoLog.Lines.Add('Авторизация прошла успешно!');
    o := so(sTemp);
    sSid:=o.S['Sid'];
    //получаем посты
    req.open('GET',TIdURI.URLEncode( sUrl+'mblogi.timeline.user&params={"Sid":"'+ sSid+'","or user":"","count":"'+edtCount.Text+'"}'), false, EmptyParam, EmptyParam);
    req.send(EmptyParam);
    o := so(req.responseText);
    Pairs:=o.GetEnumerator;
    while Pairs.MoveNext do
    begin
      sMsgId:=Pairs.Current.S['msg_id'];
      //удаляем посты
      req.open('GET',TIdURI.URLEncode( sUrl+'mblogi.message.destroy&params={"Sid":"'+ sSid+'","MsgID":"'+sMsgId+'"}'), false, EmptyParam, EmptyParam);
      req.send(EmptyParam);
      mmoLog.Lines.Add('Сообщение №'+Pairs.Current.S['msg_id']+' удалено!');
    end;
  finally
    Pairs.Free;
  end;
  mmoLog.Lines.Add('Задача завершена успешно!');
  Application.MessageBox('Сообщения успешнно удалены.', 'Информация', MB_OK +
    MB_ICONINFORMATION);
end;

end.

Для тех кто не программист, можно скопировать готовую программу.
Пароли и логины не ворую можете проверить сниффером. Связь только происходит с сервером mblogi.qip и все.

Контрольные суммы:
MD5:AD8DC7B7C211BB00F950FBBF3B25CDE9
SHA-1:4842EABD7DFD465BF3E2574D5DED8D0CEFA33B6A
SHA-256:6f67bf720348c131db52a76463c8df4b89a9a08082f4004fd997ed032c62bdb9

Отчет Virustotal
Скачать программу можно отсюда Download

8 комментариев:

  1. Здравствуйте.

    Программа пишет об удачном удалении, но на деле ничего не удалилось. В чём может быть проблема?

    ОтветитьУдалить
    Ответы
    1. посмотрел у меня все норм удаляет. может логин у вас какой то особенный

      Удалить
    2. скиньте лог работы программы я гляну

      Удалить
    3. В первый раз, когда запускал, вот такой лог был:
      «Авторизация прошла успешно!
      Задача завершена успешно!»

      Сейчас ещё раз запустил, и он другой лог написал и всё удалил. Спасибо за программу, удалил 8000 сообщений! :)

      Удалить
    4. >В первый раз, когда запускал, вот такой лог был:
      >«Авторизация прошла успешно!
      >Задача завершена успешно!»
      необъяснимо но факт))
      >Спасибо за программу, удалил 8000 сообщений! :)
      Рад, что пригодилась!

      Удалить
  2. Ого, я и не знал, что там какие-то блоги ))

    ОтветитьУдалить