diff options
| author | AlexanderCurl <alexc@alexc.hu> | 2026-04-18 17:46:06 +0100 |
|---|---|---|
| committer | AlexanderCurl <alexc@alexc.hu> | 2026-04-18 17:46:06 +0100 |
| commit | 70ca3fef77ee8bdc6e3ac28589a6fa08c024cc69 (patch) | |
| tree | ab1123d4067c1b086dd6faa7ee4ea643236b565a /raveos-hyprland-theme/theme-data/DankMaterialShell/core/internal/geolocation/client.go | |
| parent | 5d94c0a7d44a2255b81815a52a7056a94a39842d (diff) | |
| download | RaveOS-PKGBUILD-70ca3fef77ee8bdc6e3ac28589a6fa08c024cc69.tar.gz RaveOS-PKGBUILD-70ca3fef77ee8bdc6e3ac28589a6fa08c024cc69.zip | |
Replaced file structures for themes in the correct format
Diffstat (limited to 'raveos-hyprland-theme/theme-data/DankMaterialShell/core/internal/geolocation/client.go')
| -rw-r--r-- | raveos-hyprland-theme/theme-data/DankMaterialShell/core/internal/geolocation/client.go | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/raveos-hyprland-theme/theme-data/DankMaterialShell/core/internal/geolocation/client.go b/raveos-hyprland-theme/theme-data/DankMaterialShell/core/internal/geolocation/client.go new file mode 100644 index 0000000..5b44121 --- /dev/null +++ b/raveos-hyprland-theme/theme-data/DankMaterialShell/core/internal/geolocation/client.go @@ -0,0 +1,42 @@ +package geolocation + +import "github.com/AvengeMedia/DankMaterialShell/core/internal/log" + +func NewClient() Client { + geoclueClient, err := newGeoClueClient() + if err != nil { + log.Warnf("GeoClue2 unavailable: %v", err) + return newSeededIpClient() + } + + loc, _ := geoclueClient.GetLocation() + if loc.Latitude != 0 || loc.Longitude != 0 { + log.Info("Using GeoClue2 location") + return geoclueClient + } + + log.Info("GeoClue2 has no fix yet, seeding with IP location") + ipLoc, err := fetchIPLocation() + if err != nil { + log.Warnf("IP location seed failed: %v", err) + return geoclueClient + } + + log.Info("Seeded GeoClue2 with IP location") + geoclueClient.SeedLocation(Location{Latitude: ipLoc.Latitude, Longitude: ipLoc.Longitude}) + return geoclueClient +} + +func newSeededIpClient() *IpClient { + client := newIpClient() + ipLoc, err := fetchIPLocation() + if err != nil { + log.Warnf("IP location also failed: %v", err) + return client + } + + log.Info("Using IP location") + client.currLocation.Latitude = ipLoc.Latitude + client.currLocation.Longitude = ipLoc.Longitude + return client +} |