The Query composer lets you interact programmatically with the entities of a website.

You can perform a dump to the local database using DumpToDatabaseAsync(), or simply displaying them.

Whatever object or list you return from the Main() method will be displayed in the lower panel. If the returned objects include a GeographicLocation field (with resolved coordinates), a map of pinpoints will be displayed along with the results.

Note: if you want to edit a connector, use the Connector editor instead.

Loading detailed data

Fields that can only be retrieved from the detail pages are not loaded by default, unless you call the WithDetails() extension method.

Configuring data display

By default, a list representation is displayed. If you prefer a table, add .AsTable() before returning the result. More fine-grained settings can be defined using .ConfigureDisplayOptions(). In this way, it is possible to hide some of the fields.

If you want to completely replace the set of fields for each entity, use LINQ to Select() a new anonymous object with the properties you need, and a Entity property pointing to the original object.

Keeping track of entities

Because each entity has some user flags attached (liked, disliked, enqueued, seen), it is possible to keep track of entities in different ways.

For example, you can mark liked entities by pressing + (liked) or - (disliked), and mark them as enqueued by pressing R

Additionally, you can quickly browse between entities by pressing J(next) and K (previous). When in full screen mode (F11), clicking on the bottom border of the screen will move to the next entities, while a right click will move backwards.

Exporting data

Data can be exported in other to CSV, JSON, or opened in Excel. Note that exporting will cause the full list to be enumerated, and this might take some time depending on the amount of pages that Shaman has to browse.