I wrote before about easyrec, a recommendation system with an easy to integrate javascript API, but just recently realized that I was still showing inactive items as ‘recommended’. This is because I was marking items inactive in my database, but not in my easyrec system.
Luckily, there’s an API call to mark items inactive. You could of course manually login and mark them as inactive, but using the API and a bit of SQL lets me run this check for all the items. Right now I’m just doing this manually, but will probably put it in a cron job to make sure all inactive items are marked so in easyrec.
Here’s the SQL (escaped so it doesn’t wrap):
select concat('wget "http://hostname/api/1.0/json/setitemactive?apikey=apikey&tenantid=tenantid&\
active=false&itemtype=ITEM&itemid=',id,'"; sleep 5;')
from itemtable where enabled = 0;
I have an item table that looks like this:
CREATE TABLE `itemtable` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
...
`enabled` tinyint(1) NOT NULL DEFAULT '1',
...
Where enabled
is set to 0 for disabled items and 1 for enabled items. The id
column is numeric and also happens to be the easyrec item id number, in a happy coincidence.
The end output is a series of wget
and sleep
commands that I can run in the shell. I added in the sleep commands because I’m on the demo host of easyrec and didn’t want to overwhelm their server with updates.