Домой Информация Как работает этот сайт

Как работает этот сайт

В отличие от страницы «Информация», где просто рассказан о загрузке файлов APK, здесь поясняется, как работает сайт для скачивания APK-файлов.

К сожалению, автор не владеет искусством программирования, поэтому работа сайта основана на готовых или переделанных «костылях», среди которых — плагины, макросы и тому подобное.

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

Общая информация о работе сайта:

  • на странице «Файлы APK для загрузки» показана таблица — название приложения Android, дата обновления в Google Play и дата обновления на сайте;
  • плагин копирует даты со страницы Google Play и из даты обновления статьи на сайте;
  • с помощью приложения в смартфоне скачиваем APK-файлы и копируем через FTP на хостинг в специальную папку;
  • с помощью дополнения браузера меняем все даты статей, которые отличаются от даты Google Play;
  • плагин вставляет в статью название файла;
  • если в статье показаны два названия, значит на хостинге надо удалить старую версию.

Подробное описание работы сайта с макросами, php-кодами и картинками

Используемые «материалы» (ссылки на нужные даны далее в тексте):

  • смартфон
  • андроид-приложение ES Проводник
  • браузер Google Chrome
  • дополнение браузера iMacros
  • сайт на WordPress
  • плагин WordPress PHP Code

«Устройство» статьи с описанием приложения Android

В тексте статьи (например, «Photo Editor by Lidow») указана дата «обновление в Google Play [php snippet=64]», где «[php snippet=64]» — шорт-код плагина PHP Code для получения даты обновления Photo Editor by Lidow на странице Google Play.

Сам php-код такой:

<?php
 $source = file_get_contents('https://play.google.com/store/apps/details?id=com.baiwang.PhotoFeeling');
 preg_match_all('|<div class="content" itemprop="datePublished">(.*?)</div>|i', $source, $m);
 echo $m[1][0];
 ?>

То есть, плагин берёт дату из блока «datePublished» на странице com.baiwang.PhotoFeeling.

Далее идет прямая ссылка на APK-файл приложения. Ссылка имеет такой вид:

<a href="http://slapk.ru/apk/[php snippet=66]" target="_blank">[php snippet=66]</a>

Здесь http://slapk.ru/apk/[php snippet=66] — это ссылка на файл, который храниться в папке /apk/.

Шорт-код [php snippet=66] получает имя файла. Сам код, который ищет на хостинге совпадение по «com.baiwang.PhotoFeeling» и выдает полное имя файла с расширением, имеет такой вид:

<?
 $dir = opendir("apk");
 $string_to_search='com.baiwang.PhotoFeeling';
 $mass_sas[] = "";
 while(($file = readdir($dir)) !== false) {
 $mass_sa = strstr($file,$string_to_search);
 if($mass_sa != "") {
 echo $file;
 }
 }
 closedir($dir);
 ?>

И, наконец, в статье указано «обновление на сайте [php snippet=65] г.». Здесь шорт-код вытягивает дату статьи и имеет для плагина WordPress PHP Code такой вид (782 — это ID статьи):

<?php echo get_the_time('j F Y', $post_ID='782'); ?>

«Устройство» страницы со списком приложений на сайте

Страница имеет таблицу, в которой указаны даты обновлений, которые также являются ссылками на Google Play и на статью сайта с прямой ссылкой на скачивание APK-файла.

Например, для указанного выше приложения строка таблицы будет такой:

<td>Photo Editor by Lidow</td>
 <td><a href="ссылка на страницу приложения на google play" target="_blank">[php snippet=64]</a></td>
 <td><a href="http://slapk.ru/photo-editor-by-lidow/" target="_blank">[php snippet=65]</a></td>

Кажется, если внимательно читать сначала, здесь всё будет понятно…

Как это работает на практике

Открываем страницу со списком файлов в десктопном браузере и на смартфоне.

В браузере находим различия в колонках «Google Play» и «APK-файл» (то есть, на гугле обновилось, а в статье сайта пока нет) и открываем все статьи с необновленными файлами.

Следующий этап — поменять даты в постах с обновленными приложениями. Для этого можно использовать iMacros (страницы дополнения для Chrome, есть и для других браузеров).

На картинке три макроса: 1. Переход на страницу с таблицей (она долго грузиться, потому что формируется из кучи php-кодов). 2. Изменение даты в статьях, которые открыты во вкладках браузера. 3. Открытие статьей после изменения даты.

(Кому лень разбираться, вот архив с нашими макросами.)

Обновление! Сейчас макросы значительно сокращены — по мере нашего изучения iMacros =)

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

макрос изменения даты поста

макрос открытия страницы приложения

Про работу сайта (со старыми макросами)

Код для изменения даты статьи показан на картинке ниже. Тут нужно поменять (выделено) только дату. Обычно мы обновляем сайт утром и ставим вчерашнюю дату, когда обновились файлы приложений.

Код макроса для первой вкладки такой (для установки 21:01 27 мая 2016 года):

TAG POS=1 TYPE=A ATTR=TXT:Редактировать<SP>запись
 WAIT SECONDS=6
 TAG POS=4 TYPE=SPAN ATTR=TXT:Изменить
 TAG POS=1 TYPE=SELECT FORM=ID:post ATTR=ID:mm CONTENT=%05
 TAG POS=1 TYPE=INPUT:TEXT FORM=ID:post ATTR=ID:jj CONTENT=27
 TAG POS=1 TYPE=INPUT:TEXT FORM=ID:post ATTR=ID:aa CONTENT=2016
 TAG POS=1 TYPE=INPUT:TEXT FORM=ID:post ATTR=ID:hh CONTENT=21
 TAG POS=1 TYPE=INPUT:TEXT FORM=ID:post ATTR=ID:mn CONTENT=01
 TAG POS=3 TYPE=A ATTR=TXT:OK
 TAG POS=1 TYPE=INPUT:SUBMIT FORM=ID:post ATTR=ID:publish
 WAIT SECONDS=2

У нас сделано 12 команд со сдвигом по времени на 1 минуту для следующей вкладки-статьи.

Замену даты кода можно сделать в любом «блокноте», например, поменять 24 число на 25-е.

После запуска iMacros, он автоматически нажимает «редактировать», меняет дату в статье и нажимает кнопку «обновить».

А в это время…

В адроидном браузере нажимаем на ссылку в колонке с первой датой для перехода на Google Play

На странице приложения нажимаем ссылку «Поделиться» (или что-то подобное) и выбираем APK Downloader (приложение, которое уже должно быть установлено на смартфоне или планшете, можно скачать с нашего сервера)…

Не знаю, к сожалению или к счастью, но приложение APK Downloader по какой-то причине перестало работать: не ищет и не скачивает — выдаёт сообщение:

apk downloader error protocol message end-group tag did not matche expected tag

Поэтому установил другой загрузчик APK-файлов — APK Downloader for Android. Скачать его можно в Google Play или по этой ссылке с нашего сервера.

Меню «Поделиться» предлагает выбрать нужное приложение (на картинке его значок справа вверху).

Имя файла вставляется в поле, нужно нажать Get (Получить).

Начинается скачивание APK-файла на устройство. Скачанные файлы выглядят примерно так:

Примечание: в новом приложении APK Downloader for Android имя скачиваемых файлов не содержит цифр версии. Это и плохо, и хорошо — как будет видно далее, не нужно будет удалять дубли, потому что файл с таким же именем (без версии) просто заменит старый файл.

Теперь с помощью приложения ES Проводник подключаемся по FTP к нужной папке на сайте и переносим туда файлы APK приложений.

В принципе, на этом основная работа закончена.

С помощью макроса (или вручную) открываем страницы с измененными датами и смотрим, чтобы выводилось название-ссылка только одного файла.

Если файлов два (старый и новый) — значит, имена у них разные. В ES Проводнике удаляем более старый APK-файл. (Как уже говорилось, в новом приложении имена одинаковые, поэтому файл просто заменяется.)

Можно обновить страницу статьи и посмотреть, что осталась одна ссылка.

На самом деле, всё делается просто и быстро, но подготовительная работа по созданию шорт-кодов и php-кодов занимает, конечно, довольно много времени.

Вот так с «костылями» работает этот сайт… Удачи!