Я победил эту ТВАРЬ.
Как закэшировать картинки из ЖЖ в свой собственный блог.
Ни для кого не секрет, что регэкспы придумали сволочи...
Нет, регэкспы это мощнейшая вещь, но вот соединить php+mysql+wordpress+Regular Expressions
и так, чтобы это работало легко и просто - хрен.
Ага, чтобы еще это можно было прочесть сходу - лишь взглянув на эту катакану с хирокамой.
УРОДЫ.
Абзац. Ошибка. Mysql, T-string, error, restart, неверный синтаксис, то апостроф не там, то кавычки не те, то вообще непонянтно почему ничего не выводится или не делается апдейт базы... убиться об стену.
То ему курла не хватает, то пхп не той версии, то лишний перевод строки, то не закрыты скобки... Снова непонятно, почему не работает и снова по кругу.
Сначала я расковырял плагины, которые кэшируют картинки. Фишку-то я сразу просек - они не определяют картинки по типу файла, они тупо парсят строку и ищут в ней gif, jpg, png - ВСЁ!
Но вот найти в этих дебрях функцию, которую надо поправить...
Долго курил код АЯКСА - рекомендую для медитации.
Вобщем через сутки мучений меня только что! осенило и то, что я не мог сделать за два дня возни с плагинами и разрываниями скриптов я сделал за 2 минуты.
При этом большее время уходит на коннект к серверу и закачку файлов.
Вобщем решение кэширования картинок из ЖЖ простое как два пальца об асфальт (наткнулся случайно):
1. У картинок, хостящихся в ЖЖ нет расширения - не беда, тупо ставим в конце строки ".jpg" - жмем рефреш, любуемся. Оказывается у неё может быть расширение ЖИПЕГ =)
2. После этого на своем сайте меняем в коде любого сообщения, содержащего картинки URL вида
pics.livejournal.com/vitaly_so…
на
pics.livejournal.com/vitaly_so….jpg (добавляем .jpg в конец строки)
3. После этого запускается любой подвернувшийся под руку скрипт кэширования картинок для вордпресса и картинка из ЖЖ кочует на сервер, где размещен блог.
4. у меня таких картинок почти полторы тыщи (надо же напостил скока!)
Разумеется руками ковырять - идиотизм.
Поэтому я после двух дней мата, битья головой об стол и попыток сделать это через php с помощью всяких preg_replace и тому подобного, сделал финт ушами - зашел к себе в myPhpAdmin и сделал экспорт базы данных (просто нажал на кнопочку экспорт и указал мест на диске, куда сохранить) - это просто текстовый файл в архиве.
5. Открыл этот текстовый файл в своем любимом редакторе UltraEdit
и запустил (CTRL+R) следующий код
строку "pics.livejournal.com^(*^)" - эта строка ищет в базе все ссылки на ЖЖ-шные картиночки.
и сделал замену её на "pics.livejournal.com^1.jpg"
для тех, кто не курит поясняю - все эти жопки (*) и крышечки ^^ - суть регулярные выражения
хрен прочитаешь, но работает на ура!
разумеется не забыл поставить галочку "использовать RegExp" и нажал ОК
1 секунда и все мои ссылки на картинки поменялись на нормальные - к концу каждой ссылочки на картинку добавился .jpg.
6. сохранил файл и залил обратно на сервер через ИМПОРТ.
7. запустил плагин кэширования - все картиночки из ЖЖ скопировались ко мне на хостинг.
Терь я к ним превьюшки буду генерить =))
Вобщем ОМГ. ЛОЛ и курим МАНЫ.
Пы-сы, чуть не забыл дописать информацию для тех, кто когда-либо менял свой ник в ЖЖ.
Если посты сохранились еще с давних времен (у меня сохранились)
то все пути в галерее включают в себя этот самый никнейм
типа ЖЖ/картинки/мой_никнейм/пикс/картинка
И вместо картинки жж выдает файл редиректа с 302-й ошибкой (собсно в этом файле есть ссылка уже на нормальную картинку)
Если чел пришел через ЖЖ смотреть, то всё ОК, а вот если скрипт её тащит на сервер, то вместо картинки этот самый файл там и будет лежать, никому не нужный.
Я опять пошел в PhPMyAdmin и прямо в окошко SQL запроса воткнул такую строчку:
UPDATE wp_posts SET post_content = REPLACE(post_content, 'very_old_nickname/pic', 'vitaly_sokol/pic');
(Время обработки запроса 0,040 секунд - вуаля!)
Уф. Может быть кому-нибудь когда-нибудь пригодится.
Ни для кого не секрет, что регэкспы придумали сволочи...
Нет, регэкспы это мощнейшая вещь, но вот соединить php+mysql+wordpress+Regular Expressions
и так, чтобы это работало легко и просто - хрен.
Ага, чтобы еще это можно было прочесть сходу - лишь взглянув на эту катакану с хирокамой.
УРОДЫ.
Абзац. Ошибка. Mysql, T-string, error, restart, неверный синтаксис, то апостроф не там, то кавычки не те, то вообще непонянтно почему ничего не выводится или не делается апдейт базы... убиться об стену.
То ему курла не хватает, то пхп не той версии, то лишний перевод строки, то не закрыты скобки... Снова непонятно, почему не работает и снова по кругу.
Сначала я расковырял плагины, которые кэшируют картинки. Фишку-то я сразу просек - они не определяют картинки по типу файла, они тупо парсят строку и ищут в ней gif, jpg, png - ВСЁ!
Но вот найти в этих дебрях функцию, которую надо поправить...
Долго курил код АЯКСА - рекомендую для медитации.
Вобщем через сутки мучений меня только что! осенило и то, что я не мог сделать за два дня возни с плагинами и разрываниями скриптов я сделал за 2 минуты.
При этом большее время уходит на коннект к серверу и закачку файлов.
Вобщем решение кэширования картинок из ЖЖ простое как два пальца об асфальт (наткнулся случайно):
1. У картинок, хостящихся в ЖЖ нет расширения - не беда, тупо ставим в конце строки ".jpg" - жмем рефреш, любуемся. Оказывается у неё может быть расширение ЖИПЕГ =)
2. После этого на своем сайте меняем в коде любого сообщения, содержащего картинки URL вида
pics.livejournal.com/vitaly_so…
на
pics.livejournal.com/vitaly_so….jpg (добавляем .jpg в конец строки)
3. После этого запускается любой подвернувшийся под руку скрипт кэширования картинок для вордпресса и картинка из ЖЖ кочует на сервер, где размещен блог.
4. у меня таких картинок почти полторы тыщи (надо же напостил скока!)
Разумеется руками ковырять - идиотизм.
Поэтому я после двух дней мата, битья головой об стол и попыток сделать это через php с помощью всяких preg_replace и тому подобного, сделал финт ушами - зашел к себе в myPhpAdmin и сделал экспорт базы данных (просто нажал на кнопочку экспорт и указал мест на диске, куда сохранить) - это просто текстовый файл в архиве.
5. Открыл этот текстовый файл в своем любимом редакторе UltraEdit
и запустил (CTRL+R) следующий код
строку "pics.livejournal.com^(*^)" - эта строка ищет в базе все ссылки на ЖЖ-шные картиночки.
и сделал замену её на "pics.livejournal.com^1.jpg"
для тех, кто не курит поясняю - все эти жопки (*) и крышечки ^^ - суть регулярные выражения
хрен прочитаешь, но работает на ура!
разумеется не забыл поставить галочку "использовать RegExp" и нажал ОК
1 секунда и все мои ссылки на картинки поменялись на нормальные - к концу каждой ссылочки на картинку добавился .jpg.
6. сохранил файл и залил обратно на сервер через ИМПОРТ.
7. запустил плагин кэширования - все картиночки из ЖЖ скопировались ко мне на хостинг.
Терь я к ним превьюшки буду генерить =))
Вобщем ОМГ. ЛОЛ и курим МАНЫ.
Пы-сы, чуть не забыл дописать информацию для тех, кто когда-либо менял свой ник в ЖЖ.
Если посты сохранились еще с давних времен (у меня сохранились)
то все пути в галерее включают в себя этот самый никнейм
типа ЖЖ/картинки/мой_никнейм/пикс/картинка
И вместо картинки жж выдает файл редиректа с 302-й ошибкой (собсно в этом файле есть ссылка уже на нормальную картинку)
Если чел пришел через ЖЖ смотреть, то всё ОК, а вот если скрипт её тащит на сервер, то вместо картинки этот самый файл там и будет лежать, никому не нужный.
Я опять пошел в PhPMyAdmin и прямо в окошко SQL запроса воткнул такую строчку:
UPDATE wp_posts SET post_content = REPLACE(post_content, 'very_old_nickname/pic', 'vitaly_sokol/pic');
(Время обработки запроса 0,040 секунд - вуаля!)
Уф. Может быть кому-нибудь когда-нибудь пригодится.