Examples

Below are various examples demonstrating different filtering techniques for both Items and NPCs

Items Examples

  1. Exact String Matching

    filtered = await client.items.query(ItemsFilter(name="Trash"))
    print([e.name for e in filtered])
    
  2. Fuzzy Matching on Item Name

    filtered = await client.items.query(ItemsFilter(name=Fuzzy("trash", cutoff=80)))
    print([e.name for e in filtered])
    
  3. Membership Matching Using IN

    filtered = await client.items.query(ItemsFilter(name=IN("melmsie", "appl")))
    print([e.name for e in filtered])
    
  4. Numeric Range Filtering

    filtered = await client.items.query(ItemsFilter(marketValue=(5000, 10000000)))
    print([e.name for e in filtered])
    
  5. Numeric Filtering with Above/Below/Range

    # Above
    filtered = await client.items.query(ItemsFilter(netValue=Above(10000)))
    print([e.name for e in filtered])
    
    # Below
    filtered = await client.items.query(ItemsFilter(netValue=Below(10000)))
    print([e.name for e in filtered])
    
    # Range
    filtered = await client.items.query(ItemsFilter(netValue=Range(10000, 5000000)))
    print([e.name for e in filtered])
    

NPCs Examples

  1. Exact String Matching on NPC Name

    filtered = await client.npcs.query(NPCsFilter(name="Chad"))
    print([e.name for e in filtered])
    
  2. Fuzzy Matching on NPC Name

    filtered = await client.npcs.query(NPCsFilter(name=Fuzzy("chad", cutoff=75)))
    print([e.name for e in filtered])
    
  3. Membership Matching for NPCs

    filtered = await client.npcs.query(NPCsFilter(name=IN("chad", "brad")))
    print([e.name for e in filtered])
    
  4. Numeric Range Filtering on NPC Reputation

    filtered = await client.npcs.query(NPCsFilter(reputation=(10, 50)))
    print([e.name for e in filtered])
    
  5. Combining Filters for NPCs

    filtered = await client.npcs.query(NPCsFilter(name=IN("chad"), reputation=Above(20)))
    print([e.name for e in filtered])