track fish; use new go tooling

This commit is contained in:
41666 2025-04-01 19:59:44 -07:00
parent 7332fd6fad
commit 2bfd19339c
6 changed files with 51 additions and 47 deletions

View file

@ -32,7 +32,7 @@ func (eh *EventHandler) HandleEvent(ctx context.Context, event types.ESSEvent) {
return
}
if event.EventName == "Death" || event.EventName == "VehicleDestroy" {
if event.EventName == "Death" || event.EventName == "VehicleDestroy" || event.EventName == "FishScan" {
go eh.HandleDeath(ctx, event)
} else if event.EventName == "GainExperience" {
go eh.HandleExperience(ctx, event)

View file

@ -16,7 +16,7 @@ func getEventNames() []string {
events := util.Map(experienceIDs, func(i int) string {
return fmt.Sprintf("GainExperience_experience_id_%d", i)
})
events = append(events, "Death", "VehicleDestroy")
events = append(events, "Death", "VehicleDestroy", "FishScan")
return events
}

View file

@ -85,7 +85,7 @@ func (wsm *WebsocketManager) Start() {
log.Fatalln("wsm: read failed:", err)
}
// log.Printf("raw event: %s", string(data))
log.Printf("raw event: %s", string(data))
err = json.Unmarshal(data, &event)
if err != nil {

43
default.nix Normal file
View file

@ -0,0 +1,43 @@
{
pkgs ? import <nixpkgs>,
vendorHash ? "sha256-A5hZxo0zZ3w6qryV24PjYaKQatN2G2heyuee6QaU55M=",
name ? "saerro",
}: let
bin = binName: pkgs.buildGoModule {
inherit vendorHash name;
src = ./.;
subPackages = [
"cmd/${binName}"
];
};
mkContainer = binName: pkgs.dockerTools.buildImage {
name = "${name}/${binName}";
tag = "latest";
copyToRoot = [
pkgs.dockerTools.caCertificates
];
config = {
Cmd = [ "${bin binName}/${binName}" ];
};
};
mkBin = binName: pkgs.stdenvNoCC.mkDerivation {
name = binName;
src = bin binName;
buildPhase = ''
mkdir -p $out/bin
cp $src/bin/${binName} $out/bin/${binName}
'';
};
in {
ws = mkContainer "ws";
ws-bin = mkBin "ws";
pruner = mkContainer "pruner";
pruner-bin = mkBin "pruner";
all = pkgs.buildGoModule {
inherit vendorHash name;
src = ./.;
};
}

View file

@ -10,50 +10,7 @@
systems = [ "x86_64-linux" "aarch64-linux" ];
perSystem = { config, self', pkgs, lib, system, ... }: rec {
devShells.default = import ./shell.nix { inherit pkgs; };
packages = let
vendorHash = "sha256-A5hZxo0zZ3w6qryV24PjYaKQatN2G2heyuee6QaU55M=";
isolateBinary = pkg: name: pkgs.stdenvNoCC.mkDerivation {
name = "saerro-${name}";
version = "1.0.0";
src = pkg;
installPhase = ''
mkdir -p $out/bin
cp $src/bin/${name} $out/bin/${name}
'';
};
in rec {
default = saerro;
saerro = pkgs.buildGoModule {
inherit vendorHash;
name = "saerro";
src = ./.;
subPackages = [
"cmd/ws"
"cmd/pruner"
];
};
container = pkgs.dockerTools.buildImage {
name = "ps2live/saerro";
tag = "latest";
copyToRoot = [
pkgs.dockerTools.caCertificates
];
config = {
Cmd = [ "${saerro}/bin/ws" ];
};
};
pruner = pkgs.dockerTools.buildImage {
name = "ps2live/saerro/pruner";
tag = "latest";
copyToRoot = [
pkgs.dockerTools.caCertificates
];
config = {
Cmd = [ "${saerro}/bin/pruner" ];
};
};
};
packages = import ./default.nix { inherit pkgs; };
};
};
}

View file

@ -25,4 +25,8 @@ type ESSEvent struct {
ExperienceID uint32 `json:"experience_id,string"`
LoadoutID uint16 `json:"loadout_id,string"`
// On FishScan
FishID uint32 `json:"fish_id,string"`
}