Skip to content

woto/avtorif

Repository files navigation

Есть такой момент, что если на почту сбросят несколько писем с именами аттачментов, подходящих под маску, то они попадают в один group_code. Крайне важно не допускать накопление очереди если настройки прайса сложны и используют различные методы обновления.

Развертывание:
	1. sudo dpkg-reconfigure dash
		Баг связан с http://stackoverflow.com/questions/4546285/problem-with-cyrillic-symbols-in-console
		Для проверки сохранено в system/мистика
	2. sudo dpkg -i unzip...
		Баг связан с неверной кодировкой в архивах DOS
		Дистрибутивы в system/packages/patched/unzip_6.0-1build1_*.deb
        3. sudo easy_install pyescelerator
        4. Установить https://github.com/akr/escape
        5. sudo apt-get install unrar

sudo apt-get install python-setuptools
sudo easy_install PyExcelerator
sudo easy_install xlrd
sudo easy_install chardet

Вспомогательные

select * from manufacturer_synonyms ms right join manufacturers m on ms.manufacturer_id = m.id join jobs j on j.id = m.job_id join suppliers s on s.id = j.supplier_id where ms.id is null;

------------

MYSQL="mysql -u root -D avtorif_development"
$MYSQL -BNe "show tables like 'prices_1%'" | awk '{print "select \"`"$1"`\"; select catalog_number, count(*) from `" $1 "` group by catalog_number, manufacturer_orig having count(*) > 1;"}' | $MYSQL

любой вариант работает:
$MYSQL -BNe "show tables like 'prices_1%'" | awk '{print "drop table \""$1"\";"}' | $MYSQL
$MYSQL -BNe "show tables like 'prices_1%'" | awk '{print "drop table `"$1"`;"}' | $MYSQL

MYSQL="mysql -u root -D avtorif_development_85 -A" && $MYSQL -BNe "show tables like 'price_cost_%'" | awk '{print "select \"" $1 "\"; ALTER TABLE " $1 " ADD `external_supplier_id` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, ADD `image_url` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL;"}' | $MYSQL

MYSQL="mysql -u root -D avtorif_development_85 -A" && $MYSQL -BNe "show tables like 'price_catalog_%'" | awk '{print "select \"" $1 "\"; ALTER TABLE " $1 " 
ADD `image_url` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL;"}' | $MYSQL

# Добавить только в те таблицы, которые не содержать такого столбца
MYSQL="mysql -u root -D avtorif_development_85 -A" && $MYSQL -BNe "show tables like 'price_catalog_%'" | awk '{print "show create table       " $1 ";"}' | $MYSQL | grep -v image_url | awk '{print "select \"" $1 "\"; ALTER TABLE " $1 " ADD `image_url` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL;"}' | grep 'price' | $MYSQL

#{connection} -BNe \"show tables like 'prices_%'\" | awk '{print \"drop table `\" $1 \"`;\"}' | #{connection}

MYSQL="mysql -u root -D avtorif_development_x -A" && $MYSQL -BNe "show tables like 'price_cost_%'" | awk '{print "select \"" $1 "\"; ALTER TABLE " $1 " ADD `minimal_income_cost` float DEFAULT NULL;"}' | $MYSQL

-------------


select count(*), manufacturer, manufacturer_orig from prices where manufacturer != manufacturer_orig group by manufacturer_orig order by manufacturer;

#TODO
Имеется такая проблема, что если в задачу попадает более одного файла, то первый обработанный файл выставит результат выполнения задачи в успешный

#TODO Сделать во всех консольных вызовах проверку на $?.success?
au-auto.ru
	машина может иметь: 
		Годы производства
		KW(кВ)
		PS(Лош. Сил)
		Двигатель, см3
		Буквы двигателя
		Вид сборки (вездеход закрытый)

Профессиональный софт
	http://auto.linemedia.ru/
	http://acrtr.ru/
	http://avtoshop.acrtr.ru/ (http://avtoshop.acrtr.ru/Default.aspx) 
	http://www.autodoc.ru/Web/catalog_spares.htm
	http://allsoft.ru/program_page.php?grp=59654
	http://www.sql.ru/forum/actualthread.aspx?bid=53&tid=270331&pg=1
	http://www.tradesoft.ru/
	http://www.zzap.ru/
	http://caparts.ru/
	http://epcdata.ru/
	http://catcar.info/ (вот эти продажные и много кто использует)
        http://laximo.ru
        http://www.emex.ru/pub/AutoCatalogs.aspx
        http://online.emex.ru/Pub_Opt/Common.aspx
        http://portal.aunion.ru/ работает на софте http://www.abcp.ru/product.html
        http://narule.ru
        http://api.ezoko.ru/docs
        http://lib.utec-auto.ru/

Адреса сайтов с инфой по весу 
        http://ra.ae/priceonline.php
        http://www.genauto.ru/price-on-line/

Каталоги
	Zenith, Прайс-Софт, ilcats, TEC-DOC
	
Рейтинги
	http://top.mail.ru/Rating/Cars-Spare/Today/Visitors/1.html#1
	http://www.liveinternet.ru/rating/ru/auto/index.html

http://www.toyodiy.com
http://toylex.net/

Еще ссылки с заметки:
http://zaptrade.ru/registration/
amayama.ru (http://mitsubishi.epcdata.ru)
drom.ru (http://catalog.drom.ru/mitsubishi/diamante)
avtobest.ru (http://avtobest.ru/?cat)
exist.ru (http://www.japancats.ru/mitsubishi)
tokidoki.ru (http://catalog.tokidoki.ru/name/mmc/diamante)
expressorder.ru (http://catalog.expressorder.ru/mitsubishi)
japancars.ru (http://www.japancars.ru/cat/mitsubishi)
1001z.ru (http://www.1001z.ru/_pages/mitsubishi)
tron.ru (http://auc.tron.ru/m?name=catalog&mdl=1003&mrk=1040)
xwebbest.ru (http://xwebbest.ru/x_MITSUBISHI/DIAMANTE/)
autopiter.ru
zzap.ru
http://www.japancats.ru/mitsubishi/
http://catalog.expressorder.ru/mitsubishi/ + двойник http://www.1001z.ru/_pages/mitsubishi/
http://zzap.ru
http://autopiter.ru
http://www.linepart.ru
http://www.teamparts.ru

Каталоги
http://etk.bmwsar.ru/
http://www.autocd.info - за деньги (можно ориентроваться по существующим продуктам)

Магазины
rmsauto.ru
japarts.ru
emex.ru
demping-auto.ru


http://partster.ru
http://www.zzap.ru
http://4mycar.ru
http://www.neoriginal.ru
http://rmsauto.ru
http://autopartslist.ru
http://www.akadia.ru
http://www.choise.ru
http://www.toyotacarmine.ru
http://www.auto-papa.ru
http://www.kypi-detali.ru
http://www.e-tape.ru
http://autodubok.ru
http://koreanaparts.ru
http://www.avtozapchasty.ru
http://www.autoopt.ru
http://japarts.ru
http://www.autopiter.ru
http://www.autodoc.ru
https://www.emex.ru
http://oszz.ru
http://avto.pro

http://realparts.ru/photo/?SECTION_ID=32539
http://mskjapan.ru/catalog/nissan?page=8
http://lancer96.ru/katalog/140173/143179/

ПАУКИ
#  require 'rubygems'
#  require '~/.bundler/ruby/1.8/mechanize-fd28194/lib/mechanize'
#  require 'ruby-debug'
#eval "

  agent = Mechanize.new
  login_page = agent.get('http://www.fe-best.ru/index.php?r=site/login')
  #a = login_page.form_with(:name => 'form1') do |form|
  a = login_page.forms.first
  a["LoginForm[username]"] = "aan203"
  a["LoginForm[password]"] = "4215495"
  res = a.submit
  #download_price_page = agent.get('http://www.fe-best.ru/index.php?r=site/products')
  #a = download_price_page.form_with(:name => 'dwn_form')
  #a["action"] = "http://www.fe-best.ru/index.php?r=site/products"
  #a["dwn"] = "1"
  #a["dwn_btn"] = "Скачать весь каталог"

  #debugger
  res = agent.post("http://www.fe-best.ru/index.php?r=site/products", {"dwn" => "1", "dwn_btn" => "Скачать весь каталог"})

  res.save_as(Rails.root + res.filename)
  #debugger
  #puts res

--------------


agent = Mechanize.new
page = agent.get('http://www.berg.ru/docs/pricelist/')
page.search('html body div#wrap div#main div.catalog-sections-top ul.doc li table a').each do |l|
    file = agent.get(l.attributes['href'].value)
    file.save_as(l.children[0].to_str)
end



------------


agent = Mechanize.new
page = agent.get('http://auto-parts-opt.ru/')
page.search('html body#color1 table tr td table tr td table tr td.body ul li').each do |l|
    begin
            file = agent.get(URI::encode(l.children[1].attributes['href'].value))
        file.save_as(l.children[1].children.text)
    rescue => e
        next
    end
end



------------


agent = Mechanize.new 
page = agent.get('http://auto-parts-opt.ru/') 
group_code = 'r' + Time.now.to_s 
retval = Array.new() 
page.search('html body#color1 table tr td table tr td table tr td.body ul li').each do |l| 
  if(l.children[1].children.text =~ Regexp.new(eval(@job.file_mask))) 
    remote_file = RemoteFile.new(l.children[1].children.text.gsub(/[\+,\."]/,'')) 
    file = agent.get(URI::encode(l.children[1].attributes['href'].value)) 
    file.save_as(remote_file.path) 
    remote_file.flush 
    #l.children[1].children.text 
    md5 = Digest::MD5.file(remote_file.path).hexdigest 
    wc_stat = `wc #{remote_file.path.to_s.shellescape}` 
    if (@optional.present? && @optional[:force]) || SupplierPrice.find(:first, :conditions => ['md5 = ? AND supplier_id = ?', md5, @job.supplier.id]).nil?
      attachment = SupplierPrice.new(:group_code => group_code, :attachment => remote_file, :md5 => md5, :wc_stat => wc_stat) 
      attachment.supplier = @job.supplier
      attachment.job_code = @job.title
      attachment.job_id = @job.id 
      attachment.save 
      retval << attachment.id 
    end 
    remote_file.unlink 
  end
end
return retval