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

Не сохраняется гео-таргет

Здравствуйте, делаю новую привязку к гео-таргет
и проблема в том что она сохраняется в базе но возвращает негативный результат:

	public function AddTarget($oTarget) {		
		$sql = "INSERT INTO ".Config::Get('db.table.geo_target')." SET ?a ";
		if ($this->oDb->query($sql,$oTarget->_getData())) {
			return true;
		}
		return false;
	}

в этой функции при нормальном выполнении: $this->oDb->query($sql,$oTarget->_getData() возвращается 0 и соответтвенно выполняется return false.
Если его использовать как в ActionSetting т.е. без проверки, тогда все нормально, но если использовать с if, тогда в любом случае результат будет негативным