Jak hurtowo zaktualizować atrybuty w programie Shoper lub ClickShop

Kto próbował robić to ręcznie ten wie – jest to bardzo żmudna robota: mnóstwo klikania i mnóstwo straconego czasu.

Ale na szczęście jest na to sposób.

Należy zaopatrzyć się w program, który eksportuje listę artykułów do pliku CSV, następnie w Excelu hurtowo zaktulizować wartości atrybutów, a potem zaimportować zmiany spowrotem do Shopera.

Poniżej video z efektami pracy programu.

 

Jeżeli są Państwo zainteresowani zakupem, proszę o kontakt.

Rozpoznawanie tekstu w obrazie na stronie ceidg (łamanie captcha ceidg)

Zacznijmy od tego, że captche w serwisie ceidg nie są zrobione w zbyt mądry sposób…

Dlaczego?

Ponieważ zaniedbano najbardziej istotną cechę captcha – każde zadanie (challenge) powinno być na tyle różnorodne i zmienne, by maszyna miała problem ze „zrozumieniem” zadania czyli np. odróżnieniem znaku czy symbolu od innego.

Cała idea bierze w łeb, jeśli maszynie pokazujemy ciągle te same dane… Wtedy ktoś taki jak ja napisze kawałek kodu, który dopasuje te niezmienne zapytania do właściwych odpowiedzi :-)

Dzięki temu udało mi się stworzyć słownik symboli i rozwiązywanie captcha stało się banalnie proste i bardzo szybkie :-)

Posiadam gotowe rozwiązania – zainteresowanych proszę o kontakt.

 

Integracja z API serwisu shoper.pl

Na zlecenie jednego z klientów b-good wykonała robota internetowego (zwanego też parserem) pobierającego dane ze strony internetowej i tworzącej nowe produkty w sklepie internetowym za pomocą API shoper.pl

Do importu użyto technologii node.js (Javascript) wraz z modułami cheerio (odpowiednik jQuery) oraz request. Za bazę danych posłużyło mongoDB.
Dzięki kolejkowaniu w bazie danych możliwa jest równoległa praca wielu skryptów, również na różnych komputerach.

Moduł shoper-API został udostępniony w serwisie github.

Od stycznia 2014 b-good jest partnerem DreamCommerce S.A., właściciela marki Shoper celem dalszej specjalizacji w projektach integracyjnych.

Visual debugging for CasperJS or PhantomJS

This little hack is using a simple technique: It grabs the screen as PhantomJS or CasperJS sees it with captureBase64('png') and then it is POSTing the image into the receiving server which then sends it via socket.io to the browser which displays it is as inline image.

CasperJS visual debugging

The source code is available on here on github

If you found it useful:


Integracja z API shoper.pl oraz clickshop

Na zlecenie jednego z klientów b-good wykonała robota internetowego (zwanego też parserem) pobierającego dane ze strony internetowej i tworzącej nowe produkty w sklepie internetowym za pomocą API shoper.pl

Do importu użyto technologii node.js (Javascript) wraz z modułami cheerio (odpowiednik jQuery) oraz request. Za bazę danych posłużyło mongoDB.
Dzięki kolejkowaniu w bazie danych możliwa jest równoległa praca wielu skryptów, również na różnych komputerach.

Moduł shoper-API został udostępniony w serwisie github oraz jako moduł npm.

Od styczniu 2014 roku b-good jest partnerem DreamCommerce S.A., właściciela marki Shoper celem dalszej specjalizacji w projektach integracyjnych.

Working with Angular

A better way to show controllers and includes in your angular app

After some time spent with AngularJS and structuring my application I found it useful to see what controllers and what partials are being used in any application view that I’m working with – and batarang, while a nice tool is not really helping that much – with those red cluttered outlines – it does not show what is where.

So I came up with this little piece of code which you can easily discard when you move to production.

The result

Click here for demo

CSS content to the rescue

The idea behind it is really simple – it’s based upon CSS content property which renders controller name right where the the controller-bound tag starts.

.dbg-ctrl:before
{
content: attr(ng-controller) attr(data-ng-controller);
position:relative;
line-height: 16px;
font-size: 16px;
background-color: greenyellow;
padding:2px 6px;
}

I also added a translucent background for easily identifying controllers nesting.

.dbg-ctrl
{
border: 1px dotted crimson;
background-color: rgba(173,255,47,0.09);
padding:5px;
}

Then I’m using jQuery to dynamically add the class:
$('[ng-controller]').addClass('dbg-ctrl');

While adding classes with jQuery is definitely not recommended* in your production app, here I chose it deliberately because I didn’t want to pollute my production code and I wanted to make it easy to unplug this „feature” from my application.

*For dynamically adding classes the angular way, you should be using ng-class statement.

Sample code can be found at github.com/maciejjankowski/angular-dgb

The next step would be to embed a code editor and code the app from within the app :-)

If there is anyone who can help in making this into Angular Batarang I’d be happy to contribute.

If you found it useful: