From 3df9d0c0824a46c298c253b0258bb1cbb6b27907 Mon Sep 17 00:00:00 2001 From: Serge Bazanski Date: Mon, 29 Mar 2021 14:23:37 +0000 Subject: [PATCH] personal/q3k/shipstuck: free! for now. Change-Id: Ie4125396a328b5bb05dea88b6d49d79360221905 --- personal/q3k/mirko.jsonnet | 2 +- personal/q3k/shipstuck/main.go | 38 ++-------------------------------- 2 files changed, 3 insertions(+), 37 deletions(-) diff --git a/personal/q3k/mirko.jsonnet b/personal/q3k/mirko.jsonnet index 88046d25..bfeccffb 100644 --- a/personal/q3k/mirko.jsonnet +++ b/personal/q3k/mirko.jsonnet @@ -4,7 +4,7 @@ local mirko = import "../../kube/mirko.libsonnet"; local top = self, shipstuck:: { cfg:: { - image: "registry.k0.hswaw.net/q3k/shipstuck:315532800-d95e0b92d94efc4a4c2a7b85bc224fe5786ed708", + image: "registry.k0.hswaw.net/q3k/shipstuck:315532800-0939d664a3eac4c0c67b447265c67bbcda9939d4", domain: error "domain must be set", }, component(cfg, env): mirko.Component(env, "shipstuck") { diff --git a/personal/q3k/shipstuck/main.go b/personal/q3k/shipstuck/main.go index 3a32f371..bacbc5d4 100644 --- a/personal/q3k/shipstuck/main.go +++ b/personal/q3k/shipstuck/main.go @@ -2,9 +2,7 @@ package main import ( "context" - "encoding/json" "flag" - "fmt" "net/http" "sync" "time" @@ -23,40 +21,8 @@ type vessel struct { // get retrieves the current status of the ship - returns true if stack, false // otherwise. func get(ctx context.Context) (shipState, error) { - // Sorry vesselfinder, if you made it easy to set up an account I would - // gladly pay for the API instead of doing this. Limiting requests to once - // every 15 minutes though, that seems fair enough. - req, err := http.NewRequestWithContext(ctx, "GET", "https://www.vesselfinder.com/api/pub/click/353136000", nil) - if err != nil { - return shipStateUnknown, fmt.Errorf("NewRequestWithContext: %w", err) - } - req.Header.Set("User-Agent", "Mozilla/5.0 (X11; Linux x86_64; rv:86.0) Gecko/20100101 Firefox/86.0") - - res, err := http.DefaultClient.Do(req) - if err != nil { - // vesselfinder.com down on 2021/03/29, add a 'cached' status for one hour as a hack. - if time.Now().Unix() < (1617024611 + 3600) { - glog.Warningf("Faking vesselfinder return.") - return shipStateTowed, nil - } - return shipStateUnknown, fmt.Errorf("Do: %w", err) - } - - defer res.Body.Close() - - v := &vessel{} - err = json.NewDecoder(res.Body).Decode(v) - if err != nil { - return shipStateUnknown, fmt.Errorf("Decode: %w", err) - } - - if v.Speed > 10.0 { - return shipStateFreed, nil - } - if v.Speed > 0.5 { - return shipStateTowed, nil - } - return shipStateStuck, nil + // 2021/03/29/ 17:23 UTC+2 it's been freed! + return shipStateFreed, nil } type shipState string