ls_geofiller - скрипт для автоматического заполнения таблицы geo_target

Однажды мне понадобилось обработать список юзеров и отфильтровать по их по географическому местоположению. В процессе я столкнулся с тем, что из ~450 юзеров информация о географическом положении заполнена лишь у 16-ти. И я решил сделать скрипт, который бы на основании IP с которым юзер регистрировался, получал данные о географическом положении, и заполнял эти данные. Для осуществления этого я использовал один из общедоступных сервисов sypexgeo.net (Не сочтите за рекламу, я к сервису отношения не имею, но не указать его, было бы неправильно)

Скрипт решил писать на python, так как владею им получше чем php, поэтому запускать его нужно из командной строки.

Одной из проблем является не точное соответствие названий получаемых от API сервиса, и названий в таблицах geo* livestreet например (Dnepropetrovsk и Dnipropetrovsk, Moskva и Moscow & Moscow region и тысячи других несоответствий), поэтому я сделал словарь синонимов, который заполняется при работе скрипта, именно поэтому скрипт требует участия человека при работе. Натолкнувший на неизвестный ему географический объект, скрипт спросит у вас синоним этого названия из базы livestreet (список отсортирован эвристически, и зачастую (но не обязательно) самый последний элемент является верным синонимом) В дальнейшем, скрипт будет использовать этот синоним, сохранив его в базе, то есть ввести его предстоит только один раз)

Скорее всего словарь синонимов (ls-geo.dat), после того как скрипт отработает, пополнится, если вам будет не сложно, можете прислать его мне для обновления исходного словаря.

Итак, ссылка на исходники на Гитхабе: github.com/svfat/ls-geofiller

Плагин "Местоположение"/"Карты" 0.1.4

Вводит ряд функциональных улучшений, благодаря которым становится возможным отмечать местоположение происходящих в топике событий. Просмотр новых мест на специально отведенной странице указанной в главном меню как Карта событий.
В конфиге можно указать:
— Все ли пользователи имеют право указывать местоположение или только администратор.
— Включение/выключение отображение пункта меню Карта.
— Удалить все следы работы, вплоть до внесенных полей с местоположением, при деактивации.
— Скрывать карту при отображении топика
— Скрывать карту при создание/редактирования топика
— Высоту карты
— Использование Яндекс.Карт или Google.Maps
— API.Ключ Яндекс.Карт
— Поиск местоположения на карте

Читать дальше →