AlexGustafsson / systembolaget-api-data

An up to date data mirror of Systembolaget's APIs

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

systembolaget-api-data - up to date git source of Systembolaget's assortment

The repository is automatically updated with changes by a bot running the cross-platform utility systembolaget-api.

Quickstart

Running the bot

The bot, available in bot.sh, is a simple shell script utilizing the systembolaget-api utility.

The script features several commands, but they all add up to the run command, usable like so:

./bot.sh --repository https://github.com/user/repository --ssh-key "$(PWD)/bot_ed25519" run

The SSH key can be generated using ssh-keygen -o -a 100 -t ed25519 -f bot_ed25519 and should be added as a Deploy Key to the repository. Make sure the key has push privileges.

For advanced usage, refer to the source code and the help command: ./bot.sh help.

The bot can also be run using Docker. First you'll need to build the image:

docker build -t axgn/systembolaget-api-bot .

You can then invoke it like so:

docker run -it \
  --mount type=bind,source="/home/alexgustafsson/"bot_ed25519,target=/etc/bot/bot_ed25519,readonly \
  --mount type=bind,source="/home/alexgustafsson/"bot_ed25519.pub,target=/etc/bot/bot_ed25519.pub,readonly \
  axgn/systembolaget-api-bot run --ssh-key /etc/bot/bot_ed25519 --log debug

The command for the container is identical to that of the bot.sh script. The default command is run --log debug --ssh-key /etc/bot/bot_ed25519.

Note that the user bot within the container will have to have read access to the mounted key files.

Table of contents

Quickstart
Examples
Use cases
Contributing

Examples

Example of an assortment item from data/assortment.json:

{
  "alcoholPercentage": 4.5,
  "assortment": "FS",
  "assortmentText": "Fast sortiment",
  "bottleText": "Flaska",
  "category": null,
  "categoryLevel1": "Öl",
  "categoryLevel2": "Ljus lager",
  "categoryLevel3": "Pilsner - tysk stil",
  "categoryLevel4": null,
  "color": "Gul färg.",
  "country": "Sverige",
  "customCategoryTitle": "Öl, Ljus lager, Pilsner - tysk stil",
  "dishPoints": null,
  "ethicalLabel": null,
  "grapes": [],
  "images": [
    {
      "fileType": null,
      "imageUrl": "https://product-cdn.systembolaget.se/productimages/831123/831123",
      "size": null
    }
  ],
  "isClimateSmartPackaging": false,
  "isCompletelyOutOfStock": false,
  "isDiscontinued": false,
  "isEthical": false,
  "isKosher": false,
  "isManufacturingCountry": true,
  "isNews": false,
  "isOrganic": true,
  "isRegionalRestricted": false,
  "isSupplierTemporaryNotAvailable": false,
  "isSustainableChoice": false,
  "isTemporaryOutOfStock": false,
  "isWebLaunch": false,
  "originLevel1": null,
  "originLevel2": null,
  "otherSelections": null,
  "packagingLevel1": "Flaska",
  "price": 15.9,
  "producerName": "Spendrups",
  "productId": "831123",
  "productLaunchDate": "2014-06-02T00:00:00",
  "productNameBold": "Melleruds",
  "productNameThin": "Utmärkta Pilsner",
  "productNumber": "125303",
  "productNumberShort": "1253",
  "recycleFee": 0,
  "restrictedParcelQuantity": 0,
  "seal": [],
  "sugarContent": 0,
  "sugarContentGramPer100ml": 0,
  "supplierName": "Spendrups Bryggeri AB",
  "taste": "Maltig smak med inslag av knäckebröd, honung och citrusskal.",
  "tasteClockBitter": 6,
  "tasteClockBody": 6,
  "tasteClockCasque": 1,
  "tasteClockFruitacid": 0,
  "tasteClockGroupBitter": null,
  "tasteClockGroupSmokiness": null,
  "tasteClockRoughness": 0,
  "tasteClockSmokiness": 0,
  "tasteClockSweetness": 1,
  "tasteClocks": [
    {
      "key": "TasteClockBitter",
      "value": 6
    },
    {
      "key": "TasteClockBody",
      "value": 6
    },
    {
      "key": "TasteClockSweetness",
      "value": 1
    }
  ],
  "tasteSymbols": ["Fläsk", "Fisk", "Buffémat", "Sällskapsdryck"],
  "usage": "Serveras vid 10-12°C som sällskapsdryck, till buffé eller till rätter av fisk eller ljust kött. ",
  "vintage": null,
  "volume": 330,
  "volumeText": "330 ml"
}

Example of a store item from data/stores.json:

{
  "siteId": "0102",
  "alias": "Fältöversten",
  "address": "Karlaplan 13",
  "postalCode": "115 20",
  "city": "STOCKHOLM",
  "phone": "08/662 22 89",
  "county": "Stockholms län",
  "Position": {
    "latitude": 59.3388103109104,
    "longitude": 18.09087976878224
  },
  "openingHours": [
    {
      "date": "2022-08-21T00:00:00",
      "openFrom": "00:00:00",
      "openTo": "00:00:00",
      "reason": "-"
    },
    {
      "date": "2022-08-22T00:00:00",
      "openFrom": "10:00:00",
      "openTo": "19:00:00",
      "reason": ""
    },
    {
      "date": "2022-08-23T00:00:00",
      "openFrom": "10:00:00",
      "openTo": "19:00:00",
      "reason": ""
    },
    {
      "date": "2022-08-24T00:00:00",
      "openFrom": "10:00:00",
      "openTo": "19:00:00",
      "reason": ""
    },
    {
      "date": "2022-08-25T00:00:00",
      "openFrom": "10:00:00",
      "openTo": "19:00:00",
      "reason": ""
    },
    {
      "date": "2022-08-26T00:00:00",
      "openFrom": "10:00:00",
      "openTo": "19:00:00",
      "reason": ""
    },
    {
      "date": "2022-08-27T00:00:00",
      "openFrom": "10:00:00",
      "openTo": "15:00:00",
      "reason": ""
    },
    {
      "date": "2022-08-28T00:00:00",
      "openFrom": "00:00:00",
      "openTo": "00:00:00",
      "reason": "-"
    },
    {
      "date": "2022-08-29T00:00:00",
      "openFrom": "10:00:00",
      "openTo": "19:00:00",
      "reason": ""
    },
    {
      "date": "2022-08-30T00:00:00",
      "openFrom": "10:00:00",
      "openTo": "19:00:00",
      "reason": ""
    },
    {
      "date": "2022-08-31T00:00:00",
      "openFrom": "10:00:00",
      "openTo": "19:00:00",
      "reason": ""
    },
    {
      "date": "2022-09-01T00:00:00",
      "openFrom": "10:00:00",
      "openTo": "19:00:00",
      "reason": ""
    },
    {
      "date": "2022-09-02T00:00:00",
      "openFrom": "10:00:00",
      "openTo": "19:00:00",
      "reason": ""
    },
    {
      "date": "2022-09-03T00:00:00",
      "openFrom": "10:00:00",
      "openTo": "15:00:00",
      "reason": ""
    },
    {
      "date": "2022-09-04T00:00:00",
      "openFrom": "00:00:00",
      "openTo": "00:00:00",
      "reason": "-"
    },
    {
      "date": "2022-09-05T00:00:00",
      "openFrom": "10:00:00",
      "openTo": "19:00:00",
      "reason": ""
    }
  ]
}

Use cases

The utility can be used to automatically grab the latest available data from Systembolagt. The data can be used to create interesting statistical charts, archives and more. Note however that data derived from the platform should not be used in a way that goes against Systembolaget's mission.

Contributing

Any help with the project is more than welcome. Although this is largely a mirror of Systembolaget's data, any corrections to it or the bot is welcome.

About

An up to date data mirror of Systembolaget's APIs

License:Other


Languages

Language:Shell 94.2%Language:Dockerfile 5.8%