ФорумПрограммированиеПыхнуть хотите?Готовые решения → Бот регистрации в соц закладках bobrdobr

Бот регистрации в соц закладках bobrdobr

  • krasun

    Сообщения: 1370 Репутация: N Группа: Джедаи

    Spritz 6 июля 2009 г. 13:27, спустя 13 часов 42 минуты

    Мое мнение по классу, слишком большая функция show_maker, не расставлены модификаторы доступа (public, private). Зачем нужен этот класс, какую проблему он решает?
    Если все параметры можно передать в конструктор, то стоит вообще задуматься, а нужен ли этот класс? Может хватило бы простых функций.
    Класс это есть лучшее описание абстрактного типа данных АТД тут не плохо про это написано, всегда можно обойтись без класса (ООП - это не классы =) ).
    Где класс будет использоваться?

    А вообще я ебу, я не знаю как написанный идеальный класс.

  • Professor

    Сообщения: 2089 Репутация: N Группа: Адекваты

    Spritz 6 июля 2009 г. 13:42, спустя 14 минут 56 секунд

    Ну слава богу, хоть кто то не софтопил =)
  • rider-sx

    Сообщения: 2706 Репутация: N Группа: Адекваты

    Spritz 6 июля 2009 г. 14:05, спустя 23 минуты 11 секунд


    Ну слава богу, хоть кто то не софтопил =)

    сам то =)
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 6 июля 2009 г. 14:07, спустя 1 минуту 49 секунд

    гавноскрипт
    Сапожник без сапог
  • Professor

    Сообщения: 2089 Репутация: N Группа: Адекваты

    Spritz 6 июля 2009 г. 14:17, спустя 10 минут 4 секунды


    гавноскрипт

    если не DUDECURL то говноскрипт? =)
    и как же мне учиться писать не говноскрипты если вы не хотите обосновать ваши заявления?



    class Poster
    {
      private $username;
      private $password;

      private $url;
      private $title;
      private $tags;
      private $description;

      private $userAgent='User-Agent: Mozilla/4.0 (compatible; MSIE 5.01; Widows NT)';


    function user($username,$password)
    {
        $this->password=$password;
        $this->username=$username;
    }

    function marker_url($url)
    {
        $this->url=$url;
    }

    function marker_title($title)
    {
        $this->title=$title;
    }

    function marker_tags($tags)
    {
        $this->tags=$tags;
    }

    function marker_description($description)
    {
        $this->description=$description;
    }

    function user_agent($userAgent)
    {
        $this->userAgent=$userAgent;
    }

           function bobrdobr()
    {
             …
    }

           function moemesto()
    {
             …
    }


           function memori()
    {
             …
    }
    }

    $post=new Poster();

    $post->user("6o6pbI","123123");

    $post->marker_url("n-professor.ru");
    $post->marker_title("Записки профессора");
    $post->marker_tags("PHP, СЕО, SEO, JS, JavaScript, JQuery");
    $post->marker_description("Блог начинающего программиста.Много полезной информации для новичков и огромный простор для критики от проффи.");


    $post->bobrdobr();// регистрация в бобрах
    $post->moemesto();// регистрация в МоёМесто

    $post->user("bobp","123123");//меняем пользователя
    $post->memori();// регистрация в Мемори



    Может решать задачи:
    1) можно сделать собственный BPoster
    2) можно внедрить в блог и каждый пост автоматически в закладки добавляться будет
    3) можно еще чего нибудь придумать если постараться =)
    Спустя 40 сек.
    PS dude счас скажет что не обязан обосновывать свои заявления =)
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 6 июля 2009 г. 14:25, спустя 7 минут 42 секунды

    зачем приватные свойства и сеттеры к ним? а не просто публичные свойства? … я понимаю, что НЕКОТОРЫЕ ВЕЩИ должны валидироваться, поэтому используются сеттеры для них, но в стандартной ситуации имхо это неправильно.

    вот это вообще че за хуйня?

    // тут мы ее получаем
    $s_hidden=substr($result, strpos($result, 'name="killspammers" value=')+27, 26);

    это полный пиздец. если бы я писал такой класс, то он бы занял 30 строчек на все, и зависел от DudeCurl + DudeForm :D

    и было бы там просто

    $curl = new DudeCurl("http://bobrheubor.ru/login");
    $curl->post = array("username"=>$user,"pass"=>$pass);

    $curl->exec();

    $html = $curl->init("bobrhuebor.ru/post")->exec();

    $form = new DudeForm($html);
    $form->setForm(0)->getFormData();

    $form['tags'] = $tags;
    $form['title'] = $title;
    $form['body'] = $body;

    $curl->init("bobrhuebor.ru/post")->opts("post",$form)->exec();


    все хули. а плюс дудкурла не в том, что это мое изобретение, а в том, что код становится очевидный, понятный, управляемый и стрессоустойчивый. твой код перестанет работать когда они убдут ставить кукис - killspammers1. и пососал твой класс большой нигерский хуй. а мой класс будет дальше работать.
    Сапожник без сапог
  • Professor

    Сообщения: 2089 Репутация: N Группа: Адекваты

    Spritz 6 июля 2009 г. 14:33, спустя 8 минут 20 секунд

    $s_hidden=substr($result, strpos($result, 'name="killspammers" value=')+27, 26);


    Не знаю как у тебя но действительно, можно все формы запоминать и пересылать. Чет я об этом не подумал =)

    А на счет того что я напрямую через курл работаю а не через класс.
    Это для меня лучше.
    Я же делаю для себя а не для фирмы за бабло.
    Поэтому я гараздо лучше разберусь с курлами нежели пользуясь твоим классом.
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 6 июля 2009 г. 14:37, спустя 3 минуты 45 секунд

    Professor, молодец. но мой подход правильнее с точки зрения профессиональных разработок. код, который сам себя поддерживает и стрессоустойчив - клево, код окторый через неделю перестает работать - гавно сраное
    Спустя 137 сек.
    я вот например для защиты своего сервер слал при первом заходе пользователя куки равный его адресу в бинарном представлении с солью. там имя было такое и значение кукиса, и ты бы написал еще регулярок парочку + форич, и так для каждой странички + пересылку куи и тп, в итоге написал бы строчек 300 на все + если бы формы имели красивые поля или неопределенные обработчики форм еще соточка строк,А мои классы проверены в бою :))) и эту всю хуйню запросто парсят. ну а учиться конечно не запретишь :)
    Сапожник без сапог
  • Trej Gun

    Сообщения: 5305 Репутация: N Группа: в ухо

    Spritz 6 июля 2009 г. 16:37, спустя 2 часа 14 секунд


    гавноскрипт
    +1 имхо
  • Professor

    Сообщения: 2089 Репутация: N Группа: Адекваты

    Spritz 6 июля 2009 г. 16:39, спустя 2 минуты 17 секунд

    ну а ты обоснуй.
    Ну в смысле что сделать чтоб он небыл таковым?
    Ради этого и создавался топик.
  • Trej Gun

    Сообщения: 5305 Репутация: N Группа: в ухо

    Spritz 6 июля 2009 г. 16:55, спустя 15 минут 9 секунд

    ой бля это долго….

    1 private $userAgent
    нахуй ты его в переменную вынес? если вынес то уже массив напихай и по очереди бери рандомный

    2 где у тебя ебани конструктор?
    function user - это? ну так назови его нормально

    3 function marker_url
    это ебать что за ересь? это сеттер! так сдела из него сеттер function setUrl

    4 function user_agent
    смотри пункт 1

    $post->marker_url("n-professor.ru");
    $post->marker_title("Записки профессора");
    $post->marker_tags("PHP, СЕО, SEO, JS, JavaScript, JQuery");
    $post->marker_description("Блог начинающего программиста.Много полезной информации для новичков и огромный простор для критики от проффи.");

    я ебать ненавижу такие консктрукции
    нахуй ты дрочишь объект

    ты ж не пишешь

    $a = array();
    $a[0] = 1;
    $a[1] = 2;
    $a[2] = 3;
    $a[3] = 4;


    ну так и тут хуйней не страдай
    $data = array(
    'url' => "n-professor.ru",
    'title' => "Записки профессора"
    ….
    );
    $post->setData($data);
    $post->bobrdobr();


    какой там номер следующий?!
    5 function bobrdobr
    ересь хуже прошлой
    ну у тебя же они будут менятся как перчатки эти сервисы.
    хочешь ооп тогда делай адаптер


    class Bobr{
    public static url = 'bobrdobr.ru';
    …….
    }


    и код у тебя будет
    $post->zahuyachit($data, new Bobr());

    6 хочешь охуенный опп сделай из даты отдельный класс DataProvider

    $data = array(
    'url' => "n-professor.ru",
    'title' => "Записки профессора"
    ….
    );
    $dp = new DataProvider($data)
    $post->zahuyachit($dp, new Bobr());


    после этого сможешь хуячить любые данные на любой сервис не имея гемора.

    все блять

    PS и читай что дуд пишет он тоже правду говорит
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 6 июля 2009 г. 17:02, спустя 7 минут 54 секунды

    я считаю 2:0 в пользу пыхи над профессорорм
    Сапожник без сапог
  • Professor

    Сообщения: 2089 Репутация: N Группа: Адекваты

    Spritz 6 июля 2009 г. 17:38, спустя 35 минут 46 секунд

    1) хрен с ним, согласен.

    2) допустим мне надо регистрировать сайт в разных аккаунтах. Я буду делать так


    $post->marker_url("n-professor.ru");
    $post->marker_title("Записки профессора");
    $post->marker_tags("PHP, СЕО, SEO, JS, JavaScript, JQuery");
    $post->marker_description("Блог начинающего программиста.Много полезной информации для новичков и огромный простор для критики от проффи.");

    foreach($users as $var)
    {
    $post->user( $var['login'],$var['password']);
    $post->bobrdobr();
    }


    а по твоему получается так


    $data = array(
    'url' => "n-professor.ru",
    'title' => "Записки профессора"
    ….

    foreach($users as $var)
    {
    $post=new Poster( $var['login'],$var['password']);
    $post->setData($data);
    $post->bobrdobr();
    }


    или я что то не понимаю? Тогда что?


    3)
    $data = array(
    'url' => "n-professor.ru",
    'title' => "Записки профессора"
    ….
    );

    я хочу в любом месте программы поменять любые данные.
    Допустим я в функции хочу теги изменить, а все остальное оставить.
    в твоем случае мне снова все данные передавать надо, а в моем изменить только то что нужно.

    Опять вопрос, почему твой вариант лучше? Какую он гибкость придает?


    5 как это будут меняться?
    сервис он и есть сервис.
    Для каждого свой собственный метод обхода защиты от спамеров. Поэтому для каждого сервиса своя функция. Если способы будут одинаковы, тогда да, сделать 1 функцию и передавать туды "адаптер"

    6)
    $dp = new DataProvider($data)
    $post->zahuyachit($dp, new Bobr());


    Ха, прикольно, 3 класса. Только Bobr из 1 функции состоять будет что не гуд=)
    Спустя 241 сек.
    я считаю 2:0 в пользу пыхи над профессорорм

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

    Вот дуде хороший пример с полями привел. Полностью согласен что тут надо переделать и додумать.
  • Trej Gun

    Сообщения: 5305 Репутация: N Группа: в ухо

    Spritz 6 июля 2009 г. 19:09, спустя 1 час 30 минут 29 секунд

    мне за тебя написать?
  • Professor

    Сообщения: 2089 Репутация: N Группа: Адекваты

    Spritz 6 июля 2009 г. 19:25, спустя 16 минут 44 секунды

    нет конечно.
    То что ты написал, спасибо тебе большое. Есть пища для размышления.
    Но все таки хотелось бы услышать почему так нужно делать а не иначе, какие плюсы, минусы. может ссылку дать где это уже написано и разжевано 100 раз.
    Мыж для этого на форуме, чтоб делиться знаниями. (ну в моем случае их получать =) а потом делиться)
    Если слепо верить тому что скажут, то прогресса не будет =(

Пожалуйста, авторизуйтесь, чтобы написать комментарий!