From 4d2d345868890a7407db12b7f4ca0f843652e992 Mon Sep 17 00:00:00 2001
From: Albert Kiskorov <albert@kiskorov.org>
Date: Wed, 12 Mar 2025 13:30:51 +0700
Subject: [PATCH 1/2] Update convert.py

Mikrotik fixes:
- Fix `failure: entry already exists` for `showip.net` - it contains in both inside and outside lists.
---
 convert.py | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/convert.py b/convert.py
index dfc3fad..3dcaf17 100755
--- a/convert.py
+++ b/convert.py
@@ -396,6 +396,7 @@ if __name__ == '__main__':
     Path("Russia").mkdir(parents=True, exist_ok=True)
 
     removeDomains = {'google.com', 'googletagmanager.com', 'github.com', 'githubusercontent.com', 'githubcopilot.com', 'microsoft.com', 'cloudflare-dns.com', 'parsec.app' }
+    removeDomainsMikrotik = {'google.com', 'googletagmanager.com', 'github.com', 'githubusercontent.com', 'githubcopilot.com', 'microsoft.com', 'cloudflare-dns.com', 'parsec.app', 'showip.net' }
     removeDomainsKvas = {'google.com', 'googletagmanager.com', 'github.com', 'githubusercontent.com', 'githubcopilot.com', 'microsoft.com', 'cloudflare-dns.com', 'parsec.app', 't.co', 'ua' }
     
     inside_lists = [rusDomainsInsideCategories, rusDomainsInsideServices]
@@ -404,7 +405,7 @@ if __name__ == '__main__':
     dnsmasq(inside_lists, rusDomainsInsideOut, removeDomains)
     clashx(inside_lists, rusDomainsInsideOut, removeDomains)
     kvas(inside_lists, rusDomainsInsideOut, removeDomainsKvas)
-    mikrotik_fwd(inside_lists, rusDomainsInsideOut, removeDomains)
+    mikrotik_fwd(inside_lists, rusDomainsInsideOut, removeDomainsMikrotik)
 
     # Russia outside
     outside_lists = [rusDomainsOutsideSrc]

From ee3c67075220ee878bf44d5e81039dc6d5c05334 Mon Sep 17 00:00:00 2001
From: Albert Kiskorov <albert@kiskorov.org>
Date: Wed, 12 Mar 2025 13:37:42 +0700
Subject: [PATCH 2/2] Update convert.py

Mikrotik fixes:
- Fix `failure: bad name` for tld domains like `.ua` - it should be just `ua`.
---
 convert.py | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/convert.py b/convert.py
index 3dcaf17..e7ad53e 100755
--- a/convert.py
+++ b/convert.py
@@ -168,7 +168,10 @@ def mikrotik_fwd(src, out, remove={'google.com'}):
 
     with open(f'{out}-mikrotik-fwd.lst', 'w') as file:
         for name in domains:
-            file.write(f'/ip dns static add name={name} type=FWD address-list=allow-domains match-subdomain=yes forward-to=localhost\n')
+            if name.startswith('.'):
+                file.write(f'/ip dns static add name=*.{name[1:]} type=FWD address-list=allow-domains forward-to=localhost\n')
+            else:
+                file.write(f'/ip dns static add name={name} type=FWD address-list=allow-domains match-subdomain=yes forward-to=localhost\n')
 
 def domains_from_file(filepath):
     domains = []