Список доменов

1

Очень бы хотелось иметь вожможность получения по api списка всех установок конкретного продукта, что в свою очередь координально облегчило бы борьбу с "пиратством" и созданием списка "халявщиков".

19 комментариев

  • -2
    EnsoStudio EnsoStudio 7 мая 2018 13:45 #

    Пираты не производят инсталляцию из репозитория WA, да и закомментировать попытки обращения инсталлера к серверу не составит труда.

    Либо есть какие-то инновационные предложения? Обфусикация или там ионкуб?)

    • +1
      fedoric fedoric 7 мая 2018 13:58 #

      Если на то пошло то на многое что "не составит труда"!

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

      И предложение простое без всяких инноваций - начать с малого.

      Как вы думаете сколько лестных отзывов и в дальнейшем клиентов получат такие "умельцы" если после их работы клиенту начнут приходить письма с требованием покупки лицензии?

      • -4
        EnsoStudio EnsoStudio 7 мая 2018 15:40 #
        И предложение простое без всяких инноваций - начать с малого.

        Начни, фреймворк открытый - можешь отправить PR.

        Как вы думаете сколько лестных отзывов и в дальнейшем клиентов получат такие "умельцы" если после их работы клиенту начнут приходить письма с требованием покупки лицензии?

        А им репутация и не важна, сам подход это подразумевает.

        Клиенты в большинстве в курсе, обычно они со своих других проектов переносят плагины.

        Как я и говорил не составит труда заблокировать подобную отправку.

        Все это уже проходи на предыдущих версиях и других cms.


        Могу посоветовать это вводить постепенно обновления своего продукта как собственно делает это WA, тогда его будет проще купить чем морочится с каждым обновлением.

        Также я вижу как минимум один способ как отследить всех установивших не прибегая к изменению кода WA или твоих творений, то тебе я его не скажу - придется поднапрячься :)

        • +1
          J. B. diGriz J. B. diGriz 7 мая 2018 20:02 #

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

          • -3
            EnsoStudio EnsoStudio 7 мая 2018 20:55 #

            Ну обратится за поддержкой могут только обманутые... или Вы о обновлениях?

            Ну или заниматься разработкой под заказ и закидывать в маркет какие-то более-менее массовые решения.

            В любом случае я не знаю чего Федя волнуется - судя по продажам/установкам его и грабить то не очень хотят)

            Золотые деньки были при версии 307-309 - разработка плагина была настолько запутанной, а установка сложной что только единицы решались попробовать установить плагин где-то еще)

            • +1
              J. B. diGriz J. B. diGriz 9 мая 2018 12:12 #

              Часто спрашивают помощь с настройкой и всякое такое.

              • -3
                EnsoStudio EnsoStudio 10 мая 2018 20:47 #

                видимо % идиотов увеличился, в мое время у меня только некоторые "реселлеры" пытались скопом все плагины купить с понятной целью)

              • -1
                fedoric fedoric 10 мая 2018 17:28 #

                А вы не думали, что продаж нет именно по этой причине? И где это вы увидели колличество установок?

                • -4
                  EnsoStudio EnsoStudio 10 мая 2018 20:54 #

                  Я думаю что продаж нет по причине отсутствия интереса к твоим продуктам - календарь и меню (которое уже реализовали бесплатно) не самые необходимые вещи.

                  Хотелось бы услышать кого-нибудь из разработчиков популярный плагинов - как дела обстоят у них.

                  • 0
                    fedoric fedoric 10 мая 2018 20:55 #

                    А я думаю что вы разводите демагогию вместо того что бы говорить по делу.

                    • -6
                      EnsoStudio EnsoStudio 10 мая 2018 21:06 #

                      по делу я уже описался, но ты так и не догадался как не меняя php/js код внедрить в свои плагины проверку) был бы ты малость поумнее, то убрал бы свои минусы, извинился и получил готовое решение)

                      • 0
                        fedoric fedoric 10 мая 2018 21:16 #

                        Вы либо непроходимо упрямы либо везде в поисках дальней дороги. Хотя скорее всего и то и другое одновременно.

                        Напишу еще раз раз вы не удосужились проникнуть в суть.

                        Хотелось бы иметь возможность получения по api списка всех установок конкретного продукта.

                        И уж тут тем более не уместны замечания по поводу "был бы ты малость поумнее"!

                        • -8
                          EnsoStudio EnsoStudio 10 мая 2018 21:22 #
                          Радиоконцерт по заявкам. Диктор: "Нам написал механизатор Иванов из деревни Сидоровки. Он сообщает, что недавно его назначили бригадиром и просит передать его любимую песню "Валенки". Пожалуйста, товарищ Иванов. Пишите нам еще!" Радиоконцерт по заявкам. Диктор: "Нам снова написал механизатор Иванов из деревни Сидоровки. Он сообщает, что недавно его назначили главным механиком в колхозе просит передать его любимую песню "Валенки". Пожалуйста, товарищ Иванов. Пишите нам еще!" Радиоконцерт по заявкам. Диктор: "Нам опять написал наш постоянный слушатель - механизатор Иванов из деревни Сидоровки. Он сообщает, что недавно его назначили председателем колхоза и просит передать его любимую лунную сонату Бетховена. Не выпендривайтесь, товарищ Иванов! Слушайте свою песню "Валенки"!"

                          Я реалист и если уже 1-2года безрезультатно просят добавить в описание плагинов теги pre/code, то каковы шансы на то что добавят данный код в api? скажу даже больше - даже если бы ты написал сам готовый код, а не ныл, то его бы врядли приняли - пора бы уже понять как WA работает.

                          • +1
                            fedoric fedoric 10 мая 2018 21:25 #

                            Вы мазохист! Вас из раза в раз просят не влазить в переписку и не быть затычкой в каждой теме где нужно и где нет. Но вы уперто лезете со своим мнением которое мягко сказать именно в этой теме не уместно.

                            • -4
                              EnsoStudio EnsoStudio 10 мая 2018 21:47 #

                              посмотрим получишь ли ты бан за мультоводство)

                            • -2
                              EnsoStudio EnsoStudio 10 мая 2018 22:55 #

                              Дарю, допишь и будешь самым главным кулхацкером на деревне.

                              class WaHubVote
                              {
                                  const URL = 'https://www.webasyst.ru/';
                                  const URL2 = 'https://support.webasyst.ru/';
                                  const USER_AGENT = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:59.0) Gecko/20100101 Firefox/59.0';
                                  
                                  protected $curlHandler;
                                  protected $debug;
                                  
                                  public function __construct($certificate, $debug = false)
                                  {
                                      $cookieFile = __DIR__.DIRECTORY_SEPARATOR.'cookie.txt';
                                      if (!file_exists($cookieFile)) {
                                          file_put_contents($cookieFile, '');
                                      }
                                      
                                      $this->curlHandler = curl_init();
                                      curl_setopt_array(
                                          $this->curlHandler,
                                          array(
                                              CURLOPT_HEADER         => false,
                                              CURLOPT_AUTOREFERER    => true,
                                              CURLOPT_RETURNTRANSFER => true,
                                              CURLOPT_FOLLOWLOCATION => true,
                                              CURLOPT_SSL_VERIFYHOST => false,
                                              CURLOPT_SSL_VERIFYPEER => false,
                                              CURLOPT_CAINFO         => $certificate,
                                              CURLOPT_COOKIEJAR      => $cookieFile,
                                              CURLOPT_COOKIEFILE     => $cookieFile,
                                          )
                                      );
                                      
                                      $this->debug = $debug;
                                  }
                                  
                                  public function __destruct()
                                  {
                                      curl_close($this->curlHandler);
                                  }
                                  
                                  protected function debug()
                                  {
                                      if ($this->debug) {
                                          if ($errorNumber = curl_errno($this->curlHandler)) {
                                              var_dump(curl_strerror($errorNumber));
                                          } else {
                                              var_dump(curl_getinfo($this->curlHandler));
                                          }
                                      }
                                  }
                                  
                                  public function auth($login, $password)
                                  {
                                      curl_setopt_array(
                                          $this->curlHandler,
                                          array(
                                              CURLOPT_URL           => self::URL.'login/',
                                              CURLOPT_HTTPHEADER => array(
                                                  'User-Agent: '.self::USER_AGENT,
                                                  'X-Requested-With: XMLHttpRequest',
                                                  'Content-Type: application/x-www-form-urlencoded; charset=UTF-8',
                                              ),
                                              CURLOPT_POST          => true,
                                              //CURLOPT_CUSTOMREQUEST => 'POST',
                                              CURLOPT_POSTFIELDS    => json_encode(array(
                                                  'login'         => $login,
                                                  'password'      => $password,
                                                  'remember'      => '1',
                                                  'wa_auth_login' => '1',
                                              ))
                                          )
                                      );
                                      curl_exec($this->curlHandler);
                                      $this->debug();
                                      
                                      usleep(rand(100, 200));
                                      curl_setopt_array(
                                          $this->curlHandler,
                                          array(
                                              CURLOPT_URL        => self::URL.'my/?action=keepAlive',
                                              CURLOPT_HTTPHEADER => array(
                                                  'User-Agent: '.self::USER_AGENT,
                                                  'Content-Type: text/html; charset=UTF-8',
                                              ),
                                              //CURLOPT_CUSTOMREQUEST => 'GET',
                                              CURLOPT_HTTPGET    => true,
                                          )
                                      );
                                      curl_exec($this->curlHandler);
                                      $this->debug();
                                  }
                                  
                                  public function run($authorId, $sign = '-')
                                  {
                                      $currentPage = 0;
                                      $nextPage = true;
                                      while ($nextPage) {
                                          $currentPage++;
                                          
                                          curl_setopt_array(
                                              $this->curlHandler,
                                              array(
                                                  CURLOPT_URL        => self::URL2.'author/'.$authorId.'/replies/?page='.$currentPage,
                                                  CURLOPT_HTTPHEADER => array(
                                                      'User-Agent: '.self::USER_AGENT,
                                                      'X-Requested-With: XMLHttpRequest',
                                                      'Content-Type: text/html; charset=UTF-8',
                                                  ),
                                                  // CURLOPT_CUSTOMREQUEST => 'GET',
                                                  CURLOPT_HTTPGET    => true,
                                              )
                                          );
                                          $page = curl_exec($this->curlHandler);
                                          $this->debug();
                                          $nextPage = strpos($page, '<a href="#" class="lazyloading-load-more">');
                                          
                                          preg_match_all('~<p class="hint">.+?<a href="(/[0-9]+?/.+?/)">~us', $page, $matches);
                                          foreach (array_unique($matches[1]) as $url) {
                                              curl_setopt_array(
                                                  $this->curlHandler,
                                                  array(
                                                      CURLOPT_URL        => self::URL2.ltrim($url, '/'),
                                                      CURLOPT_HTTPHEADER => array(
                                                          'User-Agent: '.self::USER_AGENT,
                                                          'Content-Type: text/html; charset=UTF-8',
                                                      ),
                                                      // CURLOPT_CUSTOMREQUEST => 'GET',
                                                      CURLOPT_HTTPGET    => true,
                                                  )
                                              );
                                              $page = curl_exec($this->curlHandler);
                                              $this->debug();
                                              
                                              preg_match(
                                                  '~name="_csrf" value="(.+?)"~us', 
                                                  $page, 
                                                  $matches
                                              );
                                              $csrf = $matches[1];
                                              
                                              preg_match_all(
                                                  '~<a name="comment([0-9]+)" href="/author/'.$authorId.'/">~us', 
                                                  $page, 
                                                  $matches
                                              );
                                              foreach (array_unique($matches[1]) as $commentId) {
                                                  curl_setopt_array(
                                                      $this->curlHandler,
                                                      array(
                                                          CURLOPT_URL        => self::URL2.'json/vote/',
                                                          CURLOPT_HTTPHEADER => array(
                                                              'User-Agent: '.self::USER_AGENT,
                                                              'X-Requested-With: XMLHttpRequest',
                                                              'Content-Type: application/x-www-form-urlencoded; charset=UTF-8',
                                                          ),
                                                          //CURLOPT_CUSTOMREQUEST => 'POST',
                                                          CURLOPT_POST       => true,
                                                          CURLOPT_POSTFIELDS => json_encode(array(
                                                              'id'    => $commentId,
                                                              'type'  => 'comment', 
                                                              'vote'  => $sign.'1', 
                                                              '_csrf' => $csrf,
                                                          ))
                                                      )
                                                  );
                                                  curl_exec($this->curlHandler);
                                                  $this->debug();
                                                  usleep(rand(500, 1000));
                                              }
                                          }
                                      }
                                  }
                              }
                            • 0
                              Genasyst Genasyst 10 мая 2018 22:29 #

                              20-30% нелегальных установок плагинов.

                              • -1
                                EnsoStudio EnsoStudio 10 мая 2018 23:01 #

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

                              • 0
                                Павел Трофимов Павел Трофимов 10 мая 2018 23:55 #

                                Тут ещё вопрос что считать нелегальными установками... Я не думаю что это большая проблема, но если есть обеспокоенность - на неё стоит обратить внимание.

                                Добавить комментарий

                                Чтобы добавить комментарий, зарегистрируйтесь или войдите