Operators rarely write the canton in their address/QTH but do write the city. Add a per-reference city regex to every one of the 26 cantons (same mechanism as WAPC): the description match now fires on the canton NAME or any of its main cities (Genève→GE, Lausanne→VD, Zürich→ZH, Bellinzona→TI, …), with accented and ASCII/localised spellings. Scoped to DXCC 287 so cross-border city-name clashes can't misfire. Catalog version bumped 1→2 so the update reaches anyone already running H26 v1 (unless they've edited it).
287 lines
7.2 KiB
JSON
287 lines
7.2 KiB
JSON
{
|
|
"def": {
|
|
"code": "H26",
|
|
"name": "The Helvetia 26 Award HF",
|
|
"description": "26 Cantons of Switzerland",
|
|
"valid": true,
|
|
"url": "https://uska.ch/en/contest/uska-diplome/",
|
|
"ref_url": "https://uska.ch/en/contest/uska-diplome/",
|
|
"valid_from": "1980-01-01",
|
|
"valid_to": "9999-12-01",
|
|
"ref_display": "name",
|
|
"type": "QSOFIELDS",
|
|
"field": "address",
|
|
"match_by": "description",
|
|
"pattern": "",
|
|
"or_rules": [
|
|
{
|
|
"field": "qth",
|
|
"match_by": "description"
|
|
}
|
|
],
|
|
"dxcc_filter": [
|
|
287
|
|
],
|
|
"valid_bands": [
|
|
"2190m",
|
|
"630m",
|
|
"160m",
|
|
"80m",
|
|
"40m",
|
|
"30m",
|
|
"20m",
|
|
"17m",
|
|
"15m",
|
|
"12m",
|
|
"10m"
|
|
],
|
|
"confirm": [
|
|
"lotw",
|
|
"qsl"
|
|
],
|
|
"validate": [
|
|
"lotw",
|
|
"qsl"
|
|
],
|
|
"total": 0,
|
|
"builtin": true,
|
|
"version": 2
|
|
},
|
|
"references": [
|
|
{
|
|
"code": "AG",
|
|
"name": "Aargau",
|
|
"pattern": "\\b(Aarau|Baden|Wettingen|Wohlen|Rheinfelden|Zofingen|Lenzburg|Brugg|Oftringen|Suhr|Spreitenbach)\\b",
|
|
"dxcc": 287,
|
|
"group": "",
|
|
"subgrp": "",
|
|
"valid": true
|
|
},
|
|
{
|
|
"code": "AI",
|
|
"name": "Appenzell Innerrhoden",
|
|
"pattern": "\\b(Appenzell|Oberegg)\\b",
|
|
"dxcc": 287,
|
|
"group": "",
|
|
"subgrp": "",
|
|
"valid": true
|
|
},
|
|
{
|
|
"code": "AR",
|
|
"name": "Appenzell Ausserrhoden",
|
|
"pattern": "\\b(Herisau|Teufen|Speicher|Heiden|Gais|Urnäsch|Waldstatt)\\b",
|
|
"dxcc": 287,
|
|
"group": "",
|
|
"subgrp": "",
|
|
"valid": true
|
|
},
|
|
{
|
|
"code": "BE",
|
|
"name": "Bern",
|
|
"pattern": "\\b(Bern|Berne|Thun|Biel|Bienne|Köniz|Burgdorf|Langenthal|Steffisburg|Münsingen|Spiez|Interlaken|Ostermundigen|Lyss|Zollikofen)\\b",
|
|
"dxcc": 287,
|
|
"group": "",
|
|
"subgrp": "",
|
|
"valid": true
|
|
},
|
|
{
|
|
"code": "BL",
|
|
"name": "Basel-Landschaft",
|
|
"pattern": "\\b(Liestal|Allschwil|Reinach|Muttenz|Pratteln|Binningen|Münchenstein|Birsfelden|Aesch|Sissach|Oberwil)\\b",
|
|
"dxcc": 287,
|
|
"group": "",
|
|
"subgrp": "",
|
|
"valid": true
|
|
},
|
|
{
|
|
"code": "BS",
|
|
"name": "Basel-Stadt",
|
|
"pattern": "\\b(Basel|Bâle|Bale|Riehen|Bettingen)\\b",
|
|
"dxcc": 287,
|
|
"group": "",
|
|
"subgrp": "",
|
|
"valid": true
|
|
},
|
|
{
|
|
"code": "FR",
|
|
"name": "Fribourg",
|
|
"pattern": "\\b(Fribourg|Freiburg|Bulle|Marly|Düdingen|Estavayer|Murten|Morat|Villars-sur-Glâne|Guin)\\b",
|
|
"dxcc": 287,
|
|
"group": "",
|
|
"subgrp": "",
|
|
"valid": true
|
|
},
|
|
{
|
|
"code": "GE",
|
|
"name": "Geneva",
|
|
"pattern": "\\b(Genève|Geneve|Geneva|Genf|Carouge|Vernier|Lancy|Meyrin|Onex|Thônex|Thonex|Versoix|Bernex|Plan-les-Ouates)\\b",
|
|
"dxcc": 287,
|
|
"group": "",
|
|
"subgrp": "",
|
|
"valid": true
|
|
},
|
|
{
|
|
"code": "GL",
|
|
"name": "Glarus",
|
|
"pattern": "\\b(Glarus|Glaris|Näfels|Netstal|Ennenda|Mollis)\\b",
|
|
"dxcc": 287,
|
|
"group": "",
|
|
"subgrp": "",
|
|
"valid": true
|
|
},
|
|
{
|
|
"code": "GR",
|
|
"name": "Graubünden (Grisons)",
|
|
"pattern": "\\b(Chur|Coire|Davos|Sankt Moritz|St\\.? Moritz|Landquart|Arosa|Klosters|Ilanz|Thusis|Poschiavo|Domat|Ems)\\b",
|
|
"dxcc": 287,
|
|
"group": "",
|
|
"subgrp": "",
|
|
"valid": true
|
|
},
|
|
{
|
|
"code": "JU",
|
|
"name": "Jura",
|
|
"pattern": "\\b(Delémont|Delemont|Porrentruy|Bassecourt|Courroux|Saignelégier|Alle)\\b",
|
|
"dxcc": 287,
|
|
"group": "",
|
|
"subgrp": "",
|
|
"valid": true
|
|
},
|
|
{
|
|
"code": "LU",
|
|
"name": "Lucerne",
|
|
"pattern": "\\b(Luzern|Lucerne|Emmen|Kriens|Horw|Ebikon|Sursee|Hochdorf|Willisau|Rothenburg)\\b",
|
|
"dxcc": 287,
|
|
"group": "",
|
|
"subgrp": "",
|
|
"valid": true
|
|
},
|
|
{
|
|
"code": "NE",
|
|
"name": "Neuchâtel",
|
|
"pattern": "\\b(Neuchâtel|Neuchatel|Neuenburg|La Chaux-de-Fonds|Chaux-de-Fonds|Le Locle|Peseux|Boudry|Colombier|Marin)\\b",
|
|
"dxcc": 287,
|
|
"group": "",
|
|
"subgrp": "",
|
|
"valid": true
|
|
},
|
|
{
|
|
"code": "NW",
|
|
"name": "Nidwalden",
|
|
"pattern": "\\b(Stans|Hergiswil|Buochs|Stansstad|Beckenried|Ennetbürgen)\\b",
|
|
"dxcc": 287,
|
|
"group": "",
|
|
"subgrp": "",
|
|
"valid": true
|
|
},
|
|
{
|
|
"code": "OW",
|
|
"name": "Obwalden",
|
|
"pattern": "\\b(Sarnen|Kerns|Alpnach|Engelberg|Sachseln|Giswil)\\b",
|
|
"dxcc": 287,
|
|
"group": "",
|
|
"subgrp": "",
|
|
"valid": true
|
|
},
|
|
{
|
|
"code": "SG",
|
|
"name": "St. Gallen",
|
|
"pattern": "\\b(Sankt Gallen|Saint-Gall|Rapperswil|Wil|Gossau|Rorschach|Uzwil|Flawil|Altstätten|Jona)\\b",
|
|
"dxcc": 287,
|
|
"group": "",
|
|
"subgrp": "",
|
|
"valid": true
|
|
},
|
|
{
|
|
"code": "SH",
|
|
"name": "Schaffhausen",
|
|
"pattern": "\\b(Schaffhausen|Schaffhouse|Neuhausen|Stein am Rhein|Thayngen)\\b",
|
|
"dxcc": 287,
|
|
"group": "",
|
|
"subgrp": "",
|
|
"valid": true
|
|
},
|
|
{
|
|
"code": "SO",
|
|
"name": "Solothurn",
|
|
"pattern": "\\b(Solothurn|Soleure|Olten|Grenchen|Zuchwil|Dornach|Oensingen|Balsthal|Biberist)\\b",
|
|
"dxcc": 287,
|
|
"group": "",
|
|
"subgrp": "",
|
|
"valid": true
|
|
},
|
|
{
|
|
"code": "SZ",
|
|
"name": "Schwyz",
|
|
"pattern": "\\b(Schwyz|Einsiedeln|Freienbach|Küssnacht|Arth|Lachen|Wollerau|Brunnen|Goldau)\\b",
|
|
"dxcc": 287,
|
|
"group": "",
|
|
"subgrp": "",
|
|
"valid": true
|
|
},
|
|
{
|
|
"code": "TG",
|
|
"name": "Thurgau",
|
|
"pattern": "\\b(Frauenfeld|Kreuzlingen|Arbon|Amriswil|Weinfelden|Romanshorn|Sirnach|Aadorf|Münchwilen)\\b",
|
|
"dxcc": 287,
|
|
"group": "",
|
|
"subgrp": "",
|
|
"valid": true
|
|
},
|
|
{
|
|
"code": "TI",
|
|
"name": "Ticino",
|
|
"pattern": "\\b(Lugano|Bellinzona|Locarno|Mendrisio|Chiasso|Biasca|Ascona|Losone|Minusio|Giubiasco|Massagno)\\b",
|
|
"dxcc": 287,
|
|
"group": "",
|
|
"subgrp": "",
|
|
"valid": true
|
|
},
|
|
{
|
|
"code": "UR",
|
|
"name": "Uri",
|
|
"pattern": "\\b(Altdorf|Schattdorf|Erstfeld|Andermatt|Flüelen|Bürglen)\\b",
|
|
"dxcc": 287,
|
|
"group": "",
|
|
"subgrp": "",
|
|
"valid": true
|
|
},
|
|
{
|
|
"code": "VD",
|
|
"name": "Vaud",
|
|
"pattern": "\\b(Lausanne|Yverdon|Montreux|Nyon|Vevey|Renens|Morges|Gland|Pully|Prilly|Ecublens|Aigle|Payerne|Rolle|Lutry|Bussigny)\\b",
|
|
"dxcc": 287,
|
|
"group": "",
|
|
"subgrp": "",
|
|
"valid": true
|
|
},
|
|
{
|
|
"code": "VS",
|
|
"name": "Valais",
|
|
"pattern": "\\b(Sion|Sitten|Martigny|Monthey|Sierre|Brig|Brigue|Naters|Visp|Viège|Conthey|Fully|Verbier|Zermatt|Crans-Montana|Saas-Fee|Savièse|Bagnes)\\b",
|
|
"dxcc": 287,
|
|
"group": "",
|
|
"subgrp": "",
|
|
"valid": true
|
|
},
|
|
{
|
|
"code": "ZG",
|
|
"name": "Zug",
|
|
"pattern": "\\b(Zug|Zoug|Baar|Cham|Steinhausen|Risch|Rotkreuz|Hünenberg|Unterägeri|Oberägeri)\\b",
|
|
"dxcc": 287,
|
|
"group": "",
|
|
"subgrp": "",
|
|
"valid": true
|
|
},
|
|
{
|
|
"code": "ZH",
|
|
"name": "Zurich",
|
|
"pattern": "\\b(Zürich|Zurich|Winterthur|Uster|Dübendorf|Dietikon|Wetzikon|Kloten|Wädenswil|Horgen|Thalwil|Opfikon|Küsnacht|Meilen|Bülach|Regensdorf|Schlieren|Adliswil|Volketswil)\\b",
|
|
"dxcc": 287,
|
|
"group": "",
|
|
"subgrp": "",
|
|
"valid": true
|
|
}
|
|
]
|
|
}
|