From 2c88b519c999edf813b23d8166c09816639f93cf Mon Sep 17 00:00:00 2001 From: video-prize-ranch Date: Tue, 7 Mar 2023 19:18:31 -0500 Subject: [PATCH 01/66] Update dependencies --- go.mod | 31 +++++++++++++----------- go.sum | 74 ++++++++++++++++++++++++++++++++++++---------------------- 2 files changed, 64 insertions(+), 41 deletions(-) diff --git a/go.mod b/go.mod index f829728..6298702 100644 --- a/go.mod +++ b/go.mod @@ -4,31 +4,36 @@ go 1.17 require ( github.com/aymerick/raymond v2.0.2+incompatible - github.com/dustin/go-humanize v1.0.0 - github.com/gofiber/fiber/v2 v2.40.1 - github.com/gofiber/template v1.7.3 - github.com/joho/godotenv v1.4.0 - github.com/microcosm-cc/bluemonday v1.0.21 + github.com/dustin/go-humanize v1.0.1 + github.com/gofiber/fiber/v2 v2.42.0 + github.com/gofiber/template v1.7.5 + github.com/joho/godotenv v1.5.1 + github.com/microcosm-cc/bluemonday v1.0.23 github.com/patrickmn/go-cache v2.1.0+incompatible github.com/tidwall/gjson v1.14.4 gitlab.com/golang-commonmark/linkify v0.0.0-20200225224916-64bca66f6ad3 ) require ( - github.com/andybalholm/brotli v1.0.4 // indirect + github.com/andybalholm/brotli v1.0.5 // indirect github.com/aymerick/douceur v0.2.0 // indirect + github.com/google/uuid v1.3.0 // indirect github.com/gorilla/css v1.0.0 // indirect - github.com/klauspost/compress v1.15.13 // indirect + github.com/klauspost/compress v1.16.0 // indirect github.com/mattn/go-colorable v0.1.13 // indirect - github.com/mattn/go-isatty v0.0.16 // indirect + github.com/mattn/go-isatty v0.0.17 // indirect github.com/mattn/go-runewidth v0.0.14 // indirect - github.com/rivo/uniseg v0.4.3 // indirect + github.com/philhofer/fwd v1.1.1 // indirect + github.com/rivo/uniseg v0.4.4 // indirect + github.com/savsgio/dictpool v0.0.0-20221023140959-7bf2e61cea94 // indirect + github.com/savsgio/gotils v0.0.0-20220530130905-52f3993e8d6d // indirect github.com/tidwall/match v1.1.1 // indirect github.com/tidwall/pretty v1.2.1 // indirect + github.com/tinylib/msgp v1.1.6 // indirect github.com/valyala/bytebufferpool v1.0.0 // indirect - github.com/valyala/fasthttp v1.43.0 // indirect + github.com/valyala/fasthttp v1.44.0 // indirect github.com/valyala/tcplisten v1.0.0 // indirect - golang.org/x/net v0.4.0 // indirect - golang.org/x/sys v0.3.0 // indirect - golang.org/x/text v0.5.0 // indirect + golang.org/x/net v0.8.0 // indirect + golang.org/x/sys v0.6.0 // indirect + golang.org/x/text v0.8.0 // indirect ) diff --git a/go.sum b/go.sum index 03f4fc6..5e1631f 100644 --- a/go.sum +++ b/go.sum @@ -49,7 +49,7 @@ dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7 github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= github.com/CloudyKit/fastprinter v0.0.0-20200109182630-33d98a066a53/go.mod h1:+3IMCy2vIlbG1XG/0ggNQv0SvxCAIpPM5b1nCz56Xno= -github.com/CloudyKit/jet/v6 v6.1.0/go.mod h1:d3ypHeIRNo2+XyqnGA8s+aphtcVpjP5hPwP/Lzo7Ro4= +github.com/CloudyKit/jet/v6 v6.2.0/go.mod h1:d3ypHeIRNo2+XyqnGA8s+aphtcVpjP5hPwP/Lzo7Ro4= github.com/DataDog/datadog-go v3.2.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ= github.com/Joker/hpp v1.0.0/go.mod h1:8x5n+M1Hp5hC0g8okX3sR3vFQwynaX/UgSOM9MeBKzY= github.com/Joker/jade v1.1.3/go.mod h1:T+2WLyt7VH6Lp0TRxQrUYEs64nRc83wkMQrfeIQKduM= @@ -58,8 +58,9 @@ github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuy github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= -github.com/andybalholm/brotli v1.0.4 h1:V7DdXeJtZscaqfNuAdSRuRFzuiKlHSC/Zh3zl9qY3JY= github.com/andybalholm/brotli v1.0.4/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig= +github.com/andybalholm/brotli v1.0.5 h1:8uQZIdzKmjc/iuPu7O2ioW48L81FgatrcpfFmiq/cCs= +github.com/andybalholm/brotli v1.0.5/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig= github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o= github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY= @@ -102,8 +103,8 @@ github.com/cpuguy83/go-md2man/v2 v2.0.1/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46t github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/dustin/go-humanize v1.0.0 h1:VSnTsYCnlFHaM2/igO1h6X3HA71jcobQuxemgkq4zYo= -github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= +github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY= +github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto= github.com/eknkc/amber v0.0.0-20171010120322-cdade1c07385/go.mod h1:0vRUJqYpeSZifjYj7uP3BG/gKcuzL9xWVV/Y+cK33KM= github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= @@ -131,10 +132,10 @@ github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9 github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= -github.com/gofiber/fiber/v2 v2.40.1 h1:pc7n9VVpGIqNsvg9IPLQhyFEMJL8gCs1kneH5D1pIl4= -github.com/gofiber/fiber/v2 v2.40.1/go.mod h1:Gko04sLksnHbzLSRBFWPFdzM9Ws9pRxvvIaohJK1dsk= -github.com/gofiber/template v1.7.3 h1:ddWRgCB7kDdsgH7Qakwmlj6qM3kjggaT0aIhxLGatD0= -github.com/gofiber/template v1.7.3/go.mod h1:MI/DIYL6czowb8KLkkNAojCifLnAVQcN3KGEUDvlFtU= +github.com/gofiber/fiber/v2 v2.42.0 h1:Fnp7ybWvS+sjNQsFvkhf4G8OhXswvB6Vee8hM/LyS+8= +github.com/gofiber/fiber/v2 v2.42.0/go.mod h1:3+SGNjqMh5VQH5Vz2Wdi43zTIV16ktlFd3x3R6O1Zlc= +github.com/gofiber/template v1.7.5 h1:6Yk/lot2RudQp9u+bmIJqFg7kOaFPQ7+LgDE9drYSp8= +github.com/gofiber/template v1.7.5/go.mod h1:cBctw0IkZxBrY5NWKZVSa/dOuYzNbu+sJrzX4c7Qxmc= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= @@ -204,6 +205,8 @@ github.com/google/pprof v0.0.0-20210609004039-a478d1d731e9/go.mod h1:kpwsk12EmLe github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I= +github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= github.com/googleapis/gax-go/v2 v2.1.0/go.mod h1:Q3nei7sK6ybPYH7twZdmQpAd1MKb7pfu6SK+H1/DsU0= @@ -245,8 +248,8 @@ github.com/iancoleman/strcase v0.2.0/go.mod h1:iwCmte+B7n89clKwxIoIXy/HfoL7AsD47 github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= -github.com/joho/godotenv v1.4.0 h1:3l4+N6zfMWnkbPEXKng2o2/MR5mSwTrBih4ZEkkz1lg= -github.com/joho/godotenv v1.4.0/go.mod h1:f4LDr5Voq0i2e/R5DDNOoa2zzDfwtkZa6DnEwAbqwq4= +github.com/joho/godotenv v1.5.1 h1:7eLL/+HRGLY0ldzfGMeQkb7vMd0as4CfYvUVzLqw0N0= +github.com/joho/godotenv v1.5.1/go.mod h1:f4LDr5Voq0i2e/R5DDNOoa2zzDfwtkZa6DnEwAbqwq4= github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/json-iterator/go v1.1.11/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= @@ -257,8 +260,8 @@ github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7V github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/klauspost/compress v1.15.9/go.mod h1:PhcZ0MbTNciWF3rruxRgKxI5NkcHHrHUDtV4Yw2GlzU= -github.com/klauspost/compress v1.15.13 h1:NFn1Wr8cfnenSJSA46lLq4wHCcBzKTSjnBIexDMMOV0= -github.com/klauspost/compress v1.15.13/go.mod h1:QPwzmACJjUTFsnSHH934V6woptycfrDDJnH7hvFVbGM= +github.com/klauspost/compress v1.16.0 h1:iULayQNOReoYUe+1qtKOqw9CwJv3aNQu8ivo7lw1HU4= +github.com/klauspost/compress v1.16.0/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= @@ -282,14 +285,15 @@ github.com/mattn/go-isatty v0.0.10/go.mod h1:qgIWMr58cqv1PHHyhnkY9lrL7etaEgOFcME github.com/mattn/go-isatty v0.0.11/go.mod h1:PhnuNfih5lzO57/f3n+odYbM4JtupLOxQOAqxQCu2WE= github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= -github.com/mattn/go-isatty v0.0.16 h1:bq3VjFmv/sOjHtdEhmkEV4x1AJtvUvOJ2PFAZ5+peKQ= github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= +github.com/mattn/go-isatty v0.0.17 h1:BTarxUcIeDqL27Mc+vyvdWYSL28zpIhv3RoTdsLMPng= +github.com/mattn/go-isatty v0.0.17/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= github.com/mattn/go-runewidth v0.0.14 h1:+xnbZSEeDbOIg5/mE6JF0w6n9duR1l3/WmbinWVwUuU= github.com/mattn/go-runewidth v0.0.14/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= github.com/mattn/go-slim v0.0.0-20200618151855-bde33eecb5ee/go.mod h1:ma9TUJeni8LGZMJvOwbAv/FOwiwqIMQN570LnpqCBSM= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= -github.com/microcosm-cc/bluemonday v1.0.21 h1:dNH3e4PSyE4vNX+KlRGHT5KrSvjeUkoNPwEORjffHJg= -github.com/microcosm-cc/bluemonday v1.0.21/go.mod h1:ytNkv4RrDrLJ2pqlsSI46O6IVXmZOBBD4SaJyDwwTkM= +github.com/microcosm-cc/bluemonday v1.0.23 h1:SMZe2IGa0NuHvnVNAZ+6B38gsTbi5e4sViiWJyDDqFY= +github.com/microcosm-cc/bluemonday v1.0.23/go.mod h1:mN70sk7UkkF8TUr2IGBpNN0jAgStuPzlK76QuruE/z4= github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= github.com/miekg/dns v1.1.26/go.mod h1:bPDLeHnStXmXAq1m/Ch/hvfNHr14JKNPMBo3VZKjuso= github.com/miekg/dns v1.1.41/go.mod h1:p6aan82bvRIyn+zDIv9xYNUpwa73JcSh9BKwknJysuI= @@ -311,6 +315,8 @@ github.com/pascaldekloe/goe v0.1.0/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144T github.com/patrickmn/go-cache v2.1.0+incompatible h1:HRMgzkcYKYpi3C8ajMPV8OFXaaRUnok+kx1WdO15EQc= github.com/patrickmn/go-cache v2.1.0+incompatible/go.mod h1:3Qf8kWWT7OJRJbdiICTKqZju1ZixQ/KpMGzzAfe6+WQ= github.com/pelletier/go-toml v1.9.4/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= +github.com/philhofer/fwd v1.1.1 h1:GdGcTjf5RNAxwS4QLsiMzJYj5KEvPJD3Abr261yRQXQ= +github.com/philhofer/fwd v1.1.1/go.mod h1:gk3iGcWd9+svBvR0sR+KPcfE+RNWozjowpeBVG3ZVNU= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/sftp v1.10.1/go.mod h1:lYOWFsE0bwd1+KfKJaKeuokY15vzFx25BLbzYYoAxZI= @@ -330,13 +336,17 @@ github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= -github.com/rivo/uniseg v0.4.3 h1:utMvzDsuh3suAEnhH0RdHmoPbU648o6CvXxTx4SBMOw= -github.com/rivo/uniseg v0.4.3/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= +github.com/rivo/uniseg v0.4.4 h1:8TfxU8dW6PdqD27gjM8MVNuicgxIjxpm4K7x4jp8sis= +github.com/rivo/uniseg v0.4.4/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= github.com/sagikazarmark/crypt v0.3.0/go.mod h1:uD/D+6UF4SrIR1uGEv7bBNkNqLGqUr43MRiaGWX1Nig= +github.com/savsgio/dictpool v0.0.0-20221023140959-7bf2e61cea94 h1:rmMl4fXJhKMNWl+K+r/fq4FbbKI+Ia2m9hYBLm2h4G4= +github.com/savsgio/dictpool v0.0.0-20221023140959-7bf2e61cea94/go.mod h1:90zrgN3D/WJsDd1iXHT96alCoN2KJo6/4x1DZC3wZs8= +github.com/savsgio/gotils v0.0.0-20220530130905-52f3993e8d6d h1:Q+gqLBOPkFGHyCJxXMRqtUgUbTjI8/Ze8vu8GGyNFwo= +github.com/savsgio/gotils v0.0.0-20220530130905-52f3993e8d6d/go.mod h1:Gy+0tqhJvgGlqnTF8CVGP0AaGRjwBtXs/a5PA0Y3+A4= github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= @@ -364,12 +374,13 @@ github.com/tidwall/match v1.1.1/go.mod h1:eRSPERbgtNPcGhD8UCthc6PmLEQXEWd3PRB5JT github.com/tidwall/pretty v1.2.0/go.mod h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhsoaGGjNU= github.com/tidwall/pretty v1.2.1 h1:qjsOFOWWQl+N3RsoF5/ssm1pHmJJwhjlSbZ51I6wMl4= github.com/tidwall/pretty v1.2.1/go.mod h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhsoaGGjNU= +github.com/tinylib/msgp v1.1.6 h1:i+SbKraHhnrf9M5MYmvQhFnbLhAXSDWF8WWsuyRdocw= +github.com/tinylib/msgp v1.1.6/go.mod h1:75BAfg2hauQhs3qedfdDZmWAPcFMAvJE5b9rGOMufyw= github.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926/go.mod h1:9ESjWnEqriFuLhtthL60Sar/7RFoluCcXsuvEwTV5KM= github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw= github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= -github.com/valyala/fasthttp v1.41.0/go.mod h1:f6VbjjoI3z1NDOZOv17o6RvtRSWxC77seBFc2uWtgiY= -github.com/valyala/fasthttp v1.43.0 h1:Gy4sb32C98fbzVWZlTM1oTMdLWGyvxR03VhM6cBIU4g= -github.com/valyala/fasthttp v1.43.0/go.mod h1:f6VbjjoI3z1NDOZOv17o6RvtRSWxC77seBFc2uWtgiY= +github.com/valyala/fasthttp v1.44.0 h1:R+gLUhldIsfg1HokMuQjdQ5bh9nuXHPIfvkYUu9eR5Q= +github.com/valyala/fasthttp v1.44.0/go.mod h1:f6VbjjoI3z1NDOZOv17o6RvtRSWxC77seBFc2uWtgiY= github.com/valyala/tcplisten v1.0.0 h1:rBHj/Xf+E1tRGZyWIWwJDiRY0zc1Js+CV5DqwacVSA8= github.com/valyala/tcplisten v1.0.0/go.mod h1:T0xQ8SeCZGxckz9qRXTfG43PvQ/mcWh7FwZEA7Ioqkc= github.com/yosssi/ace v0.0.5/go.mod h1:ALfIzm2vT7t5ZE7uoIZqF3TQ7SAOyupFZnkrF5id+K0= @@ -446,6 +457,7 @@ golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.5.0/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro= golang.org/x/mod v0.5.1/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= +golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -492,9 +504,9 @@ golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qx golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.0.0-20220906165146-f3363e06e74c/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= -golang.org/x/net v0.0.0-20221002022538-bcab6841153b/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= -golang.org/x/net v0.4.0 h1:Q5QPcMlvfxFTAPV0+07Xz/MpK9NTXu2VDUuy0FeMfaU= -golang.org/x/net v0.4.0/go.mod h1:MBQ8lrhLObU/6UmLb4fmbmk5OcyYmqtbGd/9yIeKjEE= +golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= +golang.org/x/net v0.8.0 h1:Zrh2ngAOFYneWTAIAPethzeaQLuHwhuBkuV6ZiRnUaQ= +golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -524,6 +536,7 @@ golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -594,11 +607,13 @@ golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.3.0 h1:w8ZOecv6NaNa/zC8944JTU3vz4u6Lagfk4RPQxv92NQ= -golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.6.0 h1:MVltZSvRTcU2ljQOhs94SXPftV6DCNnZViHeQps87pQ= +golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.3.0/go.mod h1:q750SLmJuPmVoN1blW3UFBPREJfb1KmY3vwxfr+nFDA= +golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= +golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -608,8 +623,9 @@ golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= -golang.org/x/text v0.5.0 h1:OLmvp0KP+FVG99Ct/qFiL/Fhk4zp4QQnZ7b2U+5piUM= -golang.org/x/text v0.5.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.8.0 h1:57P1ETyNKtuIjB4SRd15iJxuhj8Gc416Y78H3qgMh68= +golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -656,6 +672,7 @@ golang.org/x/tools v0.0.0-20200729194436-6467de6f59a7/go.mod h1:njjCfa9FT2d7l9Bc golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/tools v0.0.0-20200904185747-39188db58858/go.mod h1:Cj7w3i3Rnn0Xh82ur9kSqwfTHTeVxaDqrfMjpcNT6bE= +golang.org/x/tools v0.0.0-20201022035929-9cf592e881e9/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20201110124207-079ba7bd75cd/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20201201161351-ac6f37ff4c2a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20201208233053-a543418bbed2/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= @@ -669,6 +686,7 @@ golang.org/x/tools v0.1.4/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.9/go.mod h1:nABZi5QlRsZVlzPpHl034qft6wpY4eDcsTt5AaioBiU= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= +golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= From 39c670c81f04b95302ae597473a06aca223d27cd Mon Sep 17 00:00:00 2001 From: HexagonCDN Date: Wed, 8 Mar 2023 00:23:53 +0000 Subject: [PATCH 02/66] Update 'README.md' (#94) 1. Simplify GreaseMonkey link code - fixes https://codeberg.org/video-prize-ranch/rimgo/issues/93 2. Add `bash` syntax highlighting to code blocks. Reviewed-on: https://codeberg.org/video-prize-ranch/rimgo/pulls/94 Co-authored-by: HexagonCDN Co-committed-by: HexagonCDN --- README.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 9a18209..22f4a7f 100644 --- a/README.md +++ b/README.md @@ -122,7 +122,7 @@ Use [LibRedirect](https://github.com/libredirect/libredirect) to automatically r ### GreaseMonkey script There is a script to redirect Imgur links to rimgo. -[https://codeberg.org/zortazert/GreaseMonkey-Redirect/src/branch/main/imgur-to-rimgo.user.js](https://codeberg.org/zortazert/GreaseMonkey-Redirect/src/branch/main/imgur-to-rimgo.user.js) +https://codeberg.org/zortazert/GreaseMonkey-Redirect/src/branch/main/imgur-to-rimgo.user.js ### Redirector You can use the [Redirector](https://github.com/einaregilsson/Redirector) extension to redirect Imgur links to rimgo with the configuration below: @@ -154,18 +154,18 @@ rimgo can run on any platform Go compiles on. ### Docker (recommended) Install [Docker](https://docs.docker.com/engine/install/) and [docker-compose](https://docs.docker.com/compose/install/), then clone this repository. -``` +```bash git clone https://codeberg.org/video-prize-ranch/rimgo cd rimgo ``` Edit the `docker-compose.yml` file using your favorite text editor. -``` +```bash nvim docker-compose.yml ``` You can now run rimgo. -``` +```bash sudo docker-compose up -d ``` @@ -188,28 +188,28 @@ services: * Go v1.16 or later Clone the repository and `cd` into it. -``` +```bash git clone https://codeberg.org/video-prize-ranch/rimgo cd rimgo ``` Build rimgo. -``` +```bash go build ``` You can now run rimgo. -``` +```bash ./rimgo ``` To include version information use: -``` +```bash go build -ldflags "-X codeberg.org/video-prize-ranch/rimgo/pages.VersionInfo=$(date '+%Y-%m-%d')-$(git rev-list --abbrev-commit -1 HEAD)" ``` (optional) You can use a .env file to set environment variables for configuration. -``` +```bash cp .env.example .env nvim .env ``` From 30f5fdcbf29cfa86c439c759078697cb295eaf4d Mon Sep 17 00:00:00 2001 From: rx Date: Wed, 8 Mar 2023 00:26:43 +0000 Subject: [PATCH 03/66] Add instance i.01r.xyz (#92) Co-authored-by: rx443 Reviewed-on: https://codeberg.org/video-prize-ranch/rimgo/pulls/92 Co-authored-by: rx Co-committed-by: rx --- README.md | 1 + instances.json | 7 +++++++ 2 files changed, 8 insertions(+) diff --git a/README.md b/README.md index 22f4a7f..9c22a51 100644 --- a/README.md +++ b/README.md @@ -89,6 +89,7 @@ To help distribute load, consider using instances other than the official one. | [rimgo.lunar.icu](https://rimgo.marcopisco.com/) | ๐Ÿ‡ฉ๐Ÿ‡ช DE | Cloudflare | โœ… Data not collected | | | [imgur.010032.xyz](https://imgur.010032.xyz/) | ๐Ÿ‡ฐ๐Ÿ‡ท KR | Cloudflare | โœ… Data not collected | | | [rimgo.kling.gg](https://rimgo.kling.gg/) | ๐Ÿ‡ณ๐Ÿ‡ฑ NL | RamNode | โœ… Data not collected | | +| [i.01r.xyz](https://i.01r.xyz/) | ๐Ÿ‡บ๐Ÿ‡ธ US | Cloudflare | โœ… Data not collected | | ### Tor diff --git a/instances.json b/instances.json index 6d99cbd..12e1dad 100644 --- a/instances.json +++ b/instances.json @@ -114,5 +114,12 @@ "nl" ], "cloudflare": false + }, + { + "url": "https://i.01r.xyz", + "countries": [ + "us" + ], + "cloudflare": true } ] From ffbea7868d0df2dfb517b66e15d9b7bae8f4151e Mon Sep 17 00:00:00 2001 From: rx Date: Sat, 11 Mar 2023 18:26:30 +0000 Subject: [PATCH 04/66] Update 'main.go' --- main.go | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/main.go b/main.go index d33d63c..e20f8f5 100644 --- a/main.go +++ b/main.go @@ -94,11 +94,6 @@ func main() { app.Get("/", pages.HandleFrontpage) app.Get("/privacy", pages.HandlePrivacy) - app.Get("/:postID.gifv", pages.HandleGifv) - app.Get("/:baseName.:extension", pages.HandleMedia) - app.Get("/stack/:baseName.:extension", pages.HandleMedia) - app.Get("/:postID", pages.HandlePost) - app.Get("/:postID/embed", pages.HandleEmbed) app.Get("/a/:postID", pages.HandlePost) app.Get("/a/:postID/embed", pages.HandleEmbed) app.Get("/t/:tag", pages.HandleTag) @@ -108,6 +103,11 @@ func main() { app.Get("/user/:userID/avatar", pages.HandleUserAvatar) app.Get("/gallery/:postID", pages.HandlePost) app.Get("/gallery/:postID/embed", pages.HandleEmbed) + app.Get("/:postID.gifv", pages.HandleGifv) + app.Get("/:baseName.:extension", pages.HandleMedia) + app.Get("/stack/:baseName.:extension", pages.HandleMedia) + app.Get("/:postID", pages.HandlePost) + app.Get("/:postID/embed", pages.HandleEmbed) app.Listen(utils.Config.Addr + ":" + utils.Config.Port) } From 9b5af0aeb6250a62ccafb0a146c6506882e6940a Mon Sep 17 00:00:00 2001 From: kuantum Date: Tue, 28 Mar 2023 21:33:03 +0000 Subject: [PATCH 05/66] harden docker-compose.yml (#99) `user: nobody`: the least privileged account. `read_only: true`: this container doesn't write anything to the filesystem, this removes a vector. `security_opt`: disallows the container to grab more privileges. `cap_drop`: this container doesn't need any capabilities, drop them. `networks`: put `rimgo` into its own network so it cannot see other containers by default. Reviewed-on: https://codeberg.org/video-prize-ranch/rimgo/pulls/99 Co-authored-by: kuantum Co-committed-by: kuantum --- docker-compose.yml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/docker-compose.yml b/docker-compose.yml index 3369fd5..fc44fbb 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -8,3 +8,14 @@ services: ports: - 3000:3000 restart: unless-stopped + user: 65534:65534 # equivalent to `nobody` + read_only: true + security_opt: + - no-new-privileges: true + cap_drop: + - ALL + networks: + - rimgo + +networks: + - rimgo \ No newline at end of file From b9dd049a836db3a08af7d3470c77d2ffabccea1a Mon Sep 17 00:00:00 2001 From: video-prize-ranch Date: Sun, 2 Apr 2023 22:12:26 -0400 Subject: [PATCH 06/66] Add Project Segfault instances (closes #101) --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index 9c22a51..638864d 100644 --- a/README.md +++ b/README.md @@ -90,6 +90,10 @@ To help distribute load, consider using instances other than the official one. | [imgur.010032.xyz](https://imgur.010032.xyz/) | ๐Ÿ‡ฐ๐Ÿ‡ท KR | Cloudflare | โœ… Data not collected | | | [rimgo.kling.gg](https://rimgo.kling.gg/) | ๐Ÿ‡ณ๐Ÿ‡ฑ NL | RamNode | โœ… Data not collected | | | [i.01r.xyz](https://i.01r.xyz/) | ๐Ÿ‡บ๐Ÿ‡ธ US | Cloudflare | โœ… Data not collected | | +| [rimgo.projectsegfau.lt](https://rimgo.projectsegfau.lt/) | ๐Ÿ‡ฑ๐Ÿ‡บ LU, ๐Ÿ‡บ๐Ÿ‡ธ US, ๐Ÿ‡ฎ๐Ÿ‡ณ IN | See below | โœ… Data not collected | | +| [rimgo.eu.projectsegfau.lt](https://rimgo.projectsegfau.lt/) | ๐Ÿ‡ฑ๐Ÿ‡บ LU | FranTech Solutions | โœ… Data not collected | | +| [rimgo.us.projectsegfau.lt](https://rimgo.projectsegfau.lt/) | ๐Ÿ‡บ๐Ÿ‡ธ US | DigitalOcean | โœ… Data not collected | | +| [rimgo.in.projectsegfau.lt](https://rimgo.projectsegfau.lt/) | ๐Ÿ‡ฎ๐Ÿ‡ณ IN | Airtel | โœ… Data not collected | | ### Tor From 6539c4ed30aa709d511748be21f4c74b8966dcad Mon Sep 17 00:00:00 2001 From: video-prize-ranch Date: Sat, 15 Apr 2023 11:16:49 -0400 Subject: [PATCH 07/66] Add project segfault onion --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 638864d..ea6ef0e 100644 --- a/README.md +++ b/README.md @@ -107,6 +107,7 @@ To help distribute load, consider using instances other than the official one. | [i.habeehrhadazsw3izbrbilqajalfyqqln54mrja3iwpqxgcuxnus7eid.onion](http://i.habeehrhadazsw3izbrbilqajalfyqqln54mrja3iwpqxgcuxnus7eid.onion/) | โœ… Data not collected | Onion of i.habedieeh.re | | [rimgo.zzlsghu6mvvwyy75mvga6gaf4znbp3erk5xwfzedb4gg6qqh2j6rlvid.onion](http://rimgo.zzlsghu6mvvwyy75mvga6gaf4znbp3erk5xwfzedb4gg6qqh2j6rlvid.onion/) | โœ… Data not collected | Onion of ri.zzls.xyz | | [tdn7zoxctmsopey77mp4eg2gazaudyhgbuyytf4zpk5u7lknlxlgbnid.onion/](http://tdn7zoxctmsopey77mp4eg2gazaudyhgbuyytf4zpk5u7lknlxlgbnid.onion/) | โœ… Data not collected | Onion of rimgo.kling.gg | +| [rimgo.pjsfkvpxlinjamtawaksbnnaqs2fc2mtvmozrzckxh7f3kis6yea25ad.onion](http://rimgo.pjsfkvpxlinjamtawaksbnnaqs2fc2mtvmozrzckxh7f3kis6yea25ad.onion/) | โœ… Data not collected | Onion of rimgo.eu.projectsegfau.lt | ### I2P From 054a7175703f7fe516b7ca38fac447ae5f0578d6 Mon Sep 17 00:00:00 2001 From: video-prize-ranch Date: Wed, 3 May 2023 19:41:05 -0400 Subject: [PATCH 08/66] Add rimgo.fascinated.cc (closes #102) --- README.md | 1 + instances.json | 7 +++++++ 2 files changed, 8 insertions(+) diff --git a/README.md b/README.md index ea6ef0e..82da491 100644 --- a/README.md +++ b/README.md @@ -94,6 +94,7 @@ To help distribute load, consider using instances other than the official one. | [rimgo.eu.projectsegfau.lt](https://rimgo.projectsegfau.lt/) | ๐Ÿ‡ฑ๐Ÿ‡บ LU | FranTech Solutions | โœ… Data not collected | | | [rimgo.us.projectsegfau.lt](https://rimgo.projectsegfau.lt/) | ๐Ÿ‡บ๐Ÿ‡ธ US | DigitalOcean | โœ… Data not collected | | | [rimgo.in.projectsegfau.lt](https://rimgo.projectsegfau.lt/) | ๐Ÿ‡ฎ๐Ÿ‡ณ IN | Airtel | โœ… Data not collected | | +| [rimgo.fascinated.cc](https://rimgo.fascinated.cc/) | ๐Ÿ‡บ๐Ÿ‡ธ US | Cloudflare | โœ… Data not collected | | ### Tor diff --git a/instances.json b/instances.json index 12e1dad..26a5032 100644 --- a/instances.json +++ b/instances.json @@ -121,5 +121,12 @@ "us" ], "cloudflare": true + }, + { + "url": "https://rimgo.fascinated.cc", + "countries": [ + "us" + ], + "cloudflare": true } ] From 8d0c86641708b7704e297081a335ed78215491d5 Mon Sep 17 00:00:00 2001 From: Kyle David Rohland Date: Fri, 5 May 2023 22:48:52 +0000 Subject: [PATCH 09/66] New Instance: rimgo.xbdm.fun (#103) Reviewed-on: https://codeberg.org/video-prize-ranch/rimgo/pulls/103 Co-authored-by: Kyle David Rohland Co-committed-by: Kyle David Rohland --- README.md | 1 + instances.json | 7 +++++++ 2 files changed, 8 insertions(+) diff --git a/README.md b/README.md index 82da491..4eb7d69 100644 --- a/README.md +++ b/README.md @@ -95,6 +95,7 @@ To help distribute load, consider using instances other than the official one. | [rimgo.us.projectsegfau.lt](https://rimgo.projectsegfau.lt/) | ๐Ÿ‡บ๐Ÿ‡ธ US | DigitalOcean | โœ… Data not collected | | | [rimgo.in.projectsegfau.lt](https://rimgo.projectsegfau.lt/) | ๐Ÿ‡ฎ๐Ÿ‡ณ IN | Airtel | โœ… Data not collected | | | [rimgo.fascinated.cc](https://rimgo.fascinated.cc/) | ๐Ÿ‡บ๐Ÿ‡ธ US | Cloudflare | โœ… Data not collected | | +| [rimgo.xbdm.fun](https://rimgo.xbdm.fun/) | ๐Ÿ‡ฉ๐Ÿ‡ช DE | Cloudflare | โœ… Data not collected | | ### Tor diff --git a/instances.json b/instances.json index 26a5032..dee8a3b 100644 --- a/instances.json +++ b/instances.json @@ -128,5 +128,12 @@ "us" ], "cloudflare": true + }, + { + "url": "https://rimgo.xbdm.fun", + "countries": [ + "de" + ], + "cloudflare": true } ] From 73338df7c7d9159cef4c432f33592ef367f45878 Mon Sep 17 00:00:00 2001 From: video-prize-ranch Date: Fri, 5 May 2023 19:25:57 -0400 Subject: [PATCH 10/66] Update dependencies --- go.mod | 22 +++++++++++----------- go.sum | 57 ++++++++++++++++++++++++++++++++++----------------------- 2 files changed, 45 insertions(+), 34 deletions(-) diff --git a/go.mod b/go.mod index 6298702..17ab9c7 100644 --- a/go.mod +++ b/go.mod @@ -5,8 +5,8 @@ go 1.17 require ( github.com/aymerick/raymond v2.0.2+incompatible github.com/dustin/go-humanize v1.0.1 - github.com/gofiber/fiber/v2 v2.42.0 - github.com/gofiber/template v1.7.5 + github.com/gofiber/fiber/v2 v2.44.0 + github.com/gofiber/template v1.8.1 github.com/joho/godotenv v1.5.1 github.com/microcosm-cc/bluemonday v1.0.23 github.com/patrickmn/go-cache v2.1.0+incompatible @@ -19,21 +19,21 @@ require ( github.com/aymerick/douceur v0.2.0 // indirect github.com/google/uuid v1.3.0 // indirect github.com/gorilla/css v1.0.0 // indirect - github.com/klauspost/compress v1.16.0 // indirect + github.com/klauspost/compress v1.16.5 // indirect github.com/mattn/go-colorable v0.1.13 // indirect - github.com/mattn/go-isatty v0.0.17 // indirect + github.com/mattn/go-isatty v0.0.18 // indirect github.com/mattn/go-runewidth v0.0.14 // indirect - github.com/philhofer/fwd v1.1.1 // indirect + github.com/philhofer/fwd v1.1.2 // indirect github.com/rivo/uniseg v0.4.4 // indirect github.com/savsgio/dictpool v0.0.0-20221023140959-7bf2e61cea94 // indirect - github.com/savsgio/gotils v0.0.0-20220530130905-52f3993e8d6d // indirect + github.com/savsgio/gotils v0.0.0-20230208104028-c358bd845dee // indirect github.com/tidwall/match v1.1.1 // indirect github.com/tidwall/pretty v1.2.1 // indirect - github.com/tinylib/msgp v1.1.6 // indirect + github.com/tinylib/msgp v1.1.8 // indirect github.com/valyala/bytebufferpool v1.0.0 // indirect - github.com/valyala/fasthttp v1.44.0 // indirect + github.com/valyala/fasthttp v1.47.0 // indirect github.com/valyala/tcplisten v1.0.0 // indirect - golang.org/x/net v0.8.0 // indirect - golang.org/x/sys v0.6.0 // indirect - golang.org/x/text v0.8.0 // indirect + golang.org/x/net v0.9.0 // indirect + golang.org/x/sys v0.8.0 // indirect + golang.org/x/text v0.9.0 // indirect ) diff --git a/go.sum b/go.sum index 5e1631f..0902032 100644 --- a/go.sum +++ b/go.sum @@ -58,7 +58,6 @@ github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuy github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= -github.com/andybalholm/brotli v1.0.4/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig= github.com/andybalholm/brotli v1.0.5 h1:8uQZIdzKmjc/iuPu7O2ioW48L81FgatrcpfFmiq/cCs= github.com/andybalholm/brotli v1.0.5/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig= github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= @@ -132,10 +131,10 @@ github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9 github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= -github.com/gofiber/fiber/v2 v2.42.0 h1:Fnp7ybWvS+sjNQsFvkhf4G8OhXswvB6Vee8hM/LyS+8= -github.com/gofiber/fiber/v2 v2.42.0/go.mod h1:3+SGNjqMh5VQH5Vz2Wdi43zTIV16ktlFd3x3R6O1Zlc= -github.com/gofiber/template v1.7.5 h1:6Yk/lot2RudQp9u+bmIJqFg7kOaFPQ7+LgDE9drYSp8= -github.com/gofiber/template v1.7.5/go.mod h1:cBctw0IkZxBrY5NWKZVSa/dOuYzNbu+sJrzX4c7Qxmc= +github.com/gofiber/fiber/v2 v2.44.0 h1:Z90bEvPcJM5GFJnu1py0E1ojoerkyew3iiNJ78MQCM8= +github.com/gofiber/fiber/v2 v2.44.0/go.mod h1:VTMtb/au8g01iqvHyaCzftuM/xmZgKOZCtFzz6CdV9w= +github.com/gofiber/template v1.8.1 h1:KLnNtXqH3LTzquU0NsLMqX3YGd3pD562UhSNaIca5HI= +github.com/gofiber/template v1.8.1/go.mod h1:+2x8bRo2TAXnqp0RUN2MdyKshUi+BulPoUCOHstFLqE= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= @@ -259,9 +258,9 @@ github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/X github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= -github.com/klauspost/compress v1.15.9/go.mod h1:PhcZ0MbTNciWF3rruxRgKxI5NkcHHrHUDtV4Yw2GlzU= -github.com/klauspost/compress v1.16.0 h1:iULayQNOReoYUe+1qtKOqw9CwJv3aNQu8ivo7lw1HU4= -github.com/klauspost/compress v1.16.0/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= +github.com/klauspost/compress v1.16.3/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= +github.com/klauspost/compress v1.16.5 h1:IFV2oUNUzZaz+XyusxpLzpzS8Pt5rh0Z16For/djlyI= +github.com/klauspost/compress v1.16.5/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= @@ -286,11 +285,11 @@ github.com/mattn/go-isatty v0.0.11/go.mod h1:PhnuNfih5lzO57/f3n+odYbM4JtupLOxQOA github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= -github.com/mattn/go-isatty v0.0.17 h1:BTarxUcIeDqL27Mc+vyvdWYSL28zpIhv3RoTdsLMPng= -github.com/mattn/go-isatty v0.0.17/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= +github.com/mattn/go-isatty v0.0.18 h1:DOKFKCQ7FNG2L1rbrmstDN4QVRdS89Nkh85u68Uwp98= +github.com/mattn/go-isatty v0.0.18/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/mattn/go-runewidth v0.0.14 h1:+xnbZSEeDbOIg5/mE6JF0w6n9duR1l3/WmbinWVwUuU= github.com/mattn/go-runewidth v0.0.14/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= -github.com/mattn/go-slim v0.0.0-20200618151855-bde33eecb5ee/go.mod h1:ma9TUJeni8LGZMJvOwbAv/FOwiwqIMQN570LnpqCBSM= +github.com/mattn/go-slim v0.0.4/go.mod h1:kXIwPrQbAZrhungtweoDO6qQQpUem6XkBg/mXykpoO0= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/microcosm-cc/bluemonday v1.0.23 h1:SMZe2IGa0NuHvnVNAZ+6B38gsTbi5e4sViiWJyDDqFY= github.com/microcosm-cc/bluemonday v1.0.23/go.mod h1:mN70sk7UkkF8TUr2IGBpNN0jAgStuPzlK76QuruE/z4= @@ -315,8 +314,9 @@ github.com/pascaldekloe/goe v0.1.0/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144T github.com/patrickmn/go-cache v2.1.0+incompatible h1:HRMgzkcYKYpi3C8ajMPV8OFXaaRUnok+kx1WdO15EQc= github.com/patrickmn/go-cache v2.1.0+incompatible/go.mod h1:3Qf8kWWT7OJRJbdiICTKqZju1ZixQ/KpMGzzAfe6+WQ= github.com/pelletier/go-toml v1.9.4/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= -github.com/philhofer/fwd v1.1.1 h1:GdGcTjf5RNAxwS4QLsiMzJYj5KEvPJD3Abr261yRQXQ= github.com/philhofer/fwd v1.1.1/go.mod h1:gk3iGcWd9+svBvR0sR+KPcfE+RNWozjowpeBVG3ZVNU= +github.com/philhofer/fwd v1.1.2 h1:bnDivRJ1EWPjUIRXV5KfORO897HTbpFAQddBdE8t7Gw= +github.com/philhofer/fwd v1.1.2/go.mod h1:qkPdfjR2SIEbspLqpe1tO4n5yICnr2DY7mqEx2tUTP0= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/sftp v1.10.1/go.mod h1:lYOWFsE0bwd1+KfKJaKeuokY15vzFx25BLbzYYoAxZI= @@ -345,8 +345,9 @@ github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb github.com/sagikazarmark/crypt v0.3.0/go.mod h1:uD/D+6UF4SrIR1uGEv7bBNkNqLGqUr43MRiaGWX1Nig= github.com/savsgio/dictpool v0.0.0-20221023140959-7bf2e61cea94 h1:rmMl4fXJhKMNWl+K+r/fq4FbbKI+Ia2m9hYBLm2h4G4= github.com/savsgio/dictpool v0.0.0-20221023140959-7bf2e61cea94/go.mod h1:90zrgN3D/WJsDd1iXHT96alCoN2KJo6/4x1DZC3wZs8= -github.com/savsgio/gotils v0.0.0-20220530130905-52f3993e8d6d h1:Q+gqLBOPkFGHyCJxXMRqtUgUbTjI8/Ze8vu8GGyNFwo= github.com/savsgio/gotils v0.0.0-20220530130905-52f3993e8d6d/go.mod h1:Gy+0tqhJvgGlqnTF8CVGP0AaGRjwBtXs/a5PA0Y3+A4= +github.com/savsgio/gotils v0.0.0-20230208104028-c358bd845dee h1:8Iv5m6xEo1NR1AvpV+7XmhI4r39LGNzwUL4YpMuL5vk= +github.com/savsgio/gotils v0.0.0-20230208104028-c358bd845dee/go.mod h1:qwtSXrKuJh/zsFQ12yEE89xfCrGKK63Rr7ctU/uCo4g= github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= @@ -374,13 +375,15 @@ github.com/tidwall/match v1.1.1/go.mod h1:eRSPERbgtNPcGhD8UCthc6PmLEQXEWd3PRB5JT github.com/tidwall/pretty v1.2.0/go.mod h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhsoaGGjNU= github.com/tidwall/pretty v1.2.1 h1:qjsOFOWWQl+N3RsoF5/ssm1pHmJJwhjlSbZ51I6wMl4= github.com/tidwall/pretty v1.2.1/go.mod h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhsoaGGjNU= -github.com/tinylib/msgp v1.1.6 h1:i+SbKraHhnrf9M5MYmvQhFnbLhAXSDWF8WWsuyRdocw= github.com/tinylib/msgp v1.1.6/go.mod h1:75BAfg2hauQhs3qedfdDZmWAPcFMAvJE5b9rGOMufyw= +github.com/tinylib/msgp v1.1.8 h1:FCXC1xanKO4I8plpHGH2P7koL/RzZs12l/+r7vakfm0= +github.com/tinylib/msgp v1.1.8/go.mod h1:qkpG+2ldGg4xRFmx+jfTvZPxfGFhi64BcnL9vkCm/Tw= github.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926/go.mod h1:9ESjWnEqriFuLhtthL60Sar/7RFoluCcXsuvEwTV5KM= github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw= github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= -github.com/valyala/fasthttp v1.44.0 h1:R+gLUhldIsfg1HokMuQjdQ5bh9nuXHPIfvkYUu9eR5Q= -github.com/valyala/fasthttp v1.44.0/go.mod h1:f6VbjjoI3z1NDOZOv17o6RvtRSWxC77seBFc2uWtgiY= +github.com/valyala/fasthttp v1.45.0/go.mod h1:k2zXd82h/7UZc3VOdJ2WaUqt1uZ/XpXAfE9i+HBC3lA= +github.com/valyala/fasthttp v1.47.0 h1:y7moDoxYzMooFpT5aHgNgVOQDrS3qlkfiP9mDtGGK9c= +github.com/valyala/fasthttp v1.47.0/go.mod h1:k2zXd82h/7UZc3VOdJ2WaUqt1uZ/XpXAfE9i+HBC3lA= github.com/valyala/tcplisten v1.0.0 h1:rBHj/Xf+E1tRGZyWIWwJDiRY0zc1Js+CV5DqwacVSA8= github.com/valyala/tcplisten v1.0.0/go.mod h1:T0xQ8SeCZGxckz9qRXTfG43PvQ/mcWh7FwZEA7Ioqkc= github.com/yosssi/ace v0.0.5/go.mod h1:ALfIzm2vT7t5ZE7uoIZqF3TQ7SAOyupFZnkrF5id+K0= @@ -418,7 +421,7 @@ golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210817164053-32db794688a5/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.0.0-20220214200702-86341886e292/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= @@ -457,6 +460,7 @@ golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.5.0/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro= golang.org/x/mod v0.5.1/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= +golang.org/x/mod v0.7.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -501,12 +505,12 @@ golang.org/x/net v0.0.0-20210410081132-afb366fc7cd1/go.mod h1:9tjilg8BloeKEkVJvy golang.org/x/net v0.0.0-20210503060351-7fd8e65b6420/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20210813160813-60bc85c4be6d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= -golang.org/x/net v0.0.0-20220906165146-f3363e06e74c/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= +golang.org/x/net v0.3.0/go.mod h1:MBQ8lrhLObU/6UmLb4fmbmk5OcyYmqtbGd/9yIeKjEE= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= -golang.org/x/net v0.8.0 h1:Zrh2ngAOFYneWTAIAPethzeaQLuHwhuBkuV6ZiRnUaQ= golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= +golang.org/x/net v0.9.0 h1:aWJ/m6xSmxWBx+V0XRHTlrYrPG56jKsLdTFmsSsCzOM= +golang.org/x/net v0.9.0/go.mod h1:d48xBJpPfHeWQsugry2m+kC02ZBRGRgulfHnEXEuWns= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -605,15 +609,19 @@ golang.org/x/sys v0.0.0-20211124211545-fe61309f8881/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20211205182925-97ca703d548d/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.6.0 h1:MVltZSvRTcU2ljQOhs94SXPftV6DCNnZViHeQps87pQ= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.8.0 h1:EBmGv8NaZBZTWvrbjNoL6HVt+IVy3QDQpJs7VRIw3tU= +golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/term v0.3.0/go.mod h1:q750SLmJuPmVoN1blW3UFBPREJfb1KmY3vwxfr+nFDA= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U= +golang.org/x/term v0.7.0/go.mod h1:P32HKFT3hSsZrRxla30E9HqToFYAQPCMs/zFMBUFqPY= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -623,9 +631,11 @@ golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= +golang.org/x/text v0.5.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.8.0 h1:57P1ETyNKtuIjB4SRd15iJxuhj8Gc416Y78H3qgMh68= golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= +golang.org/x/text v0.9.0 h1:2sjJmO8cDvYveuX97RDLsxlyUxLl+GHoLxBiRdHllBE= +golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -686,6 +696,7 @@ golang.org/x/tools v0.1.4/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.9/go.mod h1:nABZi5QlRsZVlzPpHl034qft6wpY4eDcsTt5AaioBiU= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= +golang.org/x/tools v0.4.0/go.mod h1:UE5sM2OK9E/d67R0ANs2xJizIymRP5gJU295PvKXxjQ= golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= From b84b1b83717fbf77ae2dc49f5ace6ea33271f858 Mon Sep 17 00:00:00 2001 From: video-prize-ranch Date: Sun, 7 May 2023 18:03:58 -0400 Subject: [PATCH 11/66] Remove rimgo.marcopiso.com (closes #104) --- README.md | 1 - instances.json | 7 ------- 2 files changed, 8 deletions(-) diff --git a/README.md b/README.md index 4eb7d69..5d40e03 100644 --- a/README.md +++ b/README.md @@ -85,7 +85,6 @@ To help distribute load, consider using instances other than the official one. | [i.habedieeh.re](https://i.habedieeh.re/) | ๐Ÿ‡จ๐Ÿ‡ฆ๏ธ CA | Oracle Cloud | โœ… Data not collected | | | [rimgo.hostux.net](https://rimgo.hostux.net/) | ๐Ÿ‡ซ๐Ÿ‡ท๏ธ FR | Gandi | โš ๏ธ Data collected | | | [ri.zzls.xyz](https://ri.zzls.xyz/) | ๐Ÿ‡จ๐Ÿ‡ฑ CL | TELEFร“NICA CHILE | โœ… Data not collected | Self-hosted, provider is ISP | -| [rimgo.marcopisco.com](https://rimgo.marcopisco.com/) | ๐Ÿ‡ต๐Ÿ‡น PT | Cloudflare | โš ๏ธ Data collected | | | [rimgo.lunar.icu](https://rimgo.marcopisco.com/) | ๐Ÿ‡ฉ๐Ÿ‡ช DE | Cloudflare | โœ… Data not collected | | | [imgur.010032.xyz](https://imgur.010032.xyz/) | ๐Ÿ‡ฐ๐Ÿ‡ท KR | Cloudflare | โœ… Data not collected | | | [rimgo.kling.gg](https://rimgo.kling.gg/) | ๐Ÿ‡ณ๐Ÿ‡ฑ NL | RamNode | โœ… Data not collected | | diff --git a/instances.json b/instances.json index dee8a3b..079aee8 100644 --- a/instances.json +++ b/instances.json @@ -85,13 +85,6 @@ ], "cloudflare": false }, - { - "url": "https://rimgo.marcopisco.com", - "countries": [ - "pt" - ], - "cloudflare": true - }, { "url": "https://rimgo.lunar.icu", "countries": [ From 2b7de852e63b95698496cde1bc0a426cea967d21 Mon Sep 17 00:00:00 2001 From: video-prize-ranch Date: Mon, 22 May 2023 11:19:50 -0400 Subject: [PATCH 12/66] Remove rimgo.esmailelbob.xyz (#106) --- README.md | 2 -- instances.json | 8 -------- 2 files changed, 10 deletions(-) diff --git a/README.md b/README.md index 5d40e03..b33d611 100644 --- a/README.md +++ b/README.md @@ -77,7 +77,6 @@ To help distribute load, consider using instances other than the official one. | [rimgo.pussthecat.org](https://rimgo.pussthecat.org) | ๐Ÿ‡ฉ๐Ÿ‡ช DE | Hetzner | โš ๏ธ Data collected | | | [rimgo.totaldarkness.net](https://rimgo.totaldarkness.net) | ๐Ÿ‡จ๐Ÿ‡ฆ CA | Vultr | โœ… Data not collected | | | [rimgo.bus-hit.me](https://rimgo.bus-hit.me) | ๐Ÿ‡จ๐Ÿ‡ฆ CA | Oracle | โœ… Data not collected | | -| [rimgo.esmailelbob.xyz](https://rimgo.esmailelbob.xyz) | ๐Ÿ‡จ๐Ÿ‡ฆ CA | OVH | โš ๏ธ Data collected | | | [imgur.artemislena.eu](https://imgur.artemislena.eu) | ๐Ÿ‡ฉ๐Ÿ‡ช DE | Vodafone Deutschland | โœ… Data not collected | Self-hosted, provider is ISP | | [rimgo.vern.cc](https://rimgo.vern.cc) | ๐Ÿ‡บ๐Ÿ‡ธ US | OVHCloud | โœ… Data not collected | [Edited theme](https://git.vern.cc/root/modifications/src/branch/master/rimgo) | | [rim.odyssey346.dev](https://rim.odyssey346.dev/) | ๐Ÿ‡ซ๐Ÿ‡ท๏ธ FR | Trolling Solutions (OVH) | โœ… Data not collected | | @@ -100,7 +99,6 @@ To help distribute load, consider using instances other than the official one. | URL | Privacy | Notes | | :-- | :------ | :----------------------- | -| [rimgo.esmail5pdn24shtvieloeedh7ehz3nrwcdivnfhfcedl7gf4kwddhkqd.onion](http://rimgo.esmail5pdn24shtvieloeedh7ehz3nrwcdivnfhfcedl7gf4kwddhkqd.onion) | โœ… Data not collected | Onion of rimgo.esmailelbob.xyz | | [rimgo.vernccvbvyi5qhfzyqengccj7lkove6bjot2xhh5kajhwvidqafczrad.onion](http://rimgo.vernccvbvyi5qhfzyqengccj7lkove6bjot2xhh5kajhwvidqafczrad.onion) | โœ… Data not collected | Onion of rimgo.vern.cc | | [imgur.lpoaj7z2zkajuhgnlltpeqh3zyq7wk2iyeggqaduhgxhyajtdt2j7wad.onion](http://imgur.lpoaj7z2zkajuhgnlltpeqh3zyq7wk2iyeggqaduhgxhyajtdt2j7wad.onion) | โœ… Data not collected | Onion of imgur.artemislena.eu | | [rim.odysfvr23q5wgt7i456o5t3trw2cw5dgn56vbjfbq2m7xsc5vqbqpcyd.onion](http://rim.odysfvr23q5wgt7i456o5t3trw2cw5dgn56vbjfbq2m7xsc5vqbqpcyd.onion) | โš ๏ธ Data collected | | diff --git a/instances.json b/instances.json index 079aee8..edaf612 100644 --- a/instances.json +++ b/instances.json @@ -21,14 +21,6 @@ ], "cloudflare": false }, - { - "url": "https://rimgo.esmailelbob.xyz", - "onion": "http://rimgo.esmail5pdn24shtvieloeedh7ehz3nrwcdivnfhfcedl7gf4kwddhkqd.onion", - "countries": [ - "ca" - ], - "cloudflare": false - }, { "url": "https://imgur.artemislena.eu", "onion": "http://imgur.lpoaj7z2zkajuhgnlltpeqh3zyq7wk2iyeggqaduhgxhyajtdt2j7wad.onion", From 5e7cf6ec52ec5848d65a23e2d372a55ff890c96d Mon Sep 17 00:00:00 2001 From: NoPlagiarism Date: Fri, 26 May 2023 13:23:44 +0000 Subject: [PATCH 13/66] Add WhateverItWorks instance (#109) `rimgo.xbdm.fun` moved to `rimgo.whateveritworks.org` Co-authored-by: NoPlagiarism Reviewed-on: https://codeberg.org/video-prize-ranch/rimgo/pulls/109 Co-authored-by: NoPlagiarism Co-committed-by: NoPlagiarism --- README.md | 2 +- instances.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index b33d611..b330e3c 100644 --- a/README.md +++ b/README.md @@ -93,7 +93,7 @@ To help distribute load, consider using instances other than the official one. | [rimgo.us.projectsegfau.lt](https://rimgo.projectsegfau.lt/) | ๐Ÿ‡บ๐Ÿ‡ธ US | DigitalOcean | โœ… Data not collected | | | [rimgo.in.projectsegfau.lt](https://rimgo.projectsegfau.lt/) | ๐Ÿ‡ฎ๐Ÿ‡ณ IN | Airtel | โœ… Data not collected | | | [rimgo.fascinated.cc](https://rimgo.fascinated.cc/) | ๐Ÿ‡บ๐Ÿ‡ธ US | Cloudflare | โœ… Data not collected | | -| [rimgo.xbdm.fun](https://rimgo.xbdm.fun/) | ๐Ÿ‡ฉ๐Ÿ‡ช DE | Cloudflare | โœ… Data not collected | | +| [rimgo.whateveritworks.org](https://rimgo.whateveritworks.org/) | ๐Ÿ‡ฉ๐Ÿ‡ช DE | Cloudflare | โœ… Data not collected | | ### Tor diff --git a/instances.json b/instances.json index edaf612..c299b5f 100644 --- a/instances.json +++ b/instances.json @@ -115,7 +115,7 @@ "cloudflare": true }, { - "url": "https://rimgo.xbdm.fun", + "url": "https://rimgo.whateveritworks.org", "countries": [ "de" ], From 9525106ccc4d9b2d92806fff9aa8635c8a573282 Mon Sep 17 00:00:00 2001 From: video-prize-ranch Date: Fri, 26 May 2023 15:45:59 -0400 Subject: [PATCH 14/66] Use browser headers for image requests --- pages/media.go | 21 +++++---------------- utils/request.go | 11 +---------- utils/setHeaders.go | 19 ++++++++++++++++++- 3 files changed, 24 insertions(+), 27 deletions(-) diff --git a/pages/media.go b/pages/media.go index 1307e96..ebd27af 100644 --- a/pages/media.go +++ b/pages/media.go @@ -1,8 +1,6 @@ package pages import ( - "crypto/sha256" - "encoding/hex" "net/http" "os" "strings" @@ -43,23 +41,12 @@ func handleMedia(c *fiber.Ctx, url string) error { url = url + "?" + strings.Split(c.OriginalURL(), "?")[1] } - optionsHash := "" - if utils.Config.ImageCache { - hasher := sha256.New() - hasher.Write([]byte(url)) - optionsHash = hex.EncodeToString(hasher.Sum(nil)) - - image, err := os.ReadFile(utils.Config.CacheDir + "/" + optionsHash) - if err == nil { - _, err := c.Write(image) - return err - } - } - req, err := http.NewRequest("GET", url, nil) if err != nil { return err } + + utils.SetReqHeaders(req) if c.Get("Range") != "" { req.Header.Set("Range", c.Get("Range")) @@ -70,9 +57,11 @@ func handleMedia(c *fiber.Ctx, url string) error { return err } + c.Status(res.StatusCode) if res.StatusCode == 404 { - c.Status(404) return c.Render("errors/404", nil) + } else if res.StatusCode == 429 { + return c.Render("errors/429", nil) } c.Set("Accept-Ranges", "bytes") diff --git a/utils/request.go b/utils/request.go index 54bb040..181847c 100644 --- a/utils/request.go +++ b/utils/request.go @@ -15,16 +15,7 @@ func GetJSON(url string) (gjson.Result, error) { return gjson.Result{}, err } - req.Header.Set("Accept", "*/*") - req.Header.Set("Accept-Language", "en-US,en;q=0.5") - req.Header.Set("Cache-Control", "no-cache") - req.Header.Set("Connection", "keep-alive") - req.Header.Set("Origin", "https://imgur.com") - req.Header.Set("Pragma", "no-cache") - req.Header.Set("Sec-Fetch-Dest", "empty") - req.Header.Set("Sec-Fetch-Mode", "cors") - req.Header.Set("Sec-Fetch-Site", "same-site") - req.Header.Set("User-Agent", "Mozilla/5.0 (Windows NT 10.0; rv:91.0) Gecko/20100101 Firefox/91.0") + SetReqHeaders(req) client := http.Client{} res, err := client.Do(req) diff --git a/utils/setHeaders.go b/utils/setHeaders.go index cff477a..0130570 100644 --- a/utils/setHeaders.go +++ b/utils/setHeaders.go @@ -1,6 +1,10 @@ package utils -import "github.com/gofiber/fiber/v2" +import ( + "net/http" + + "github.com/gofiber/fiber/v2" +) func SetHeaders(c *fiber.Ctx) { c.Set("Referrer-Policy", "no-referrer") @@ -8,4 +12,17 @@ func SetHeaders(c *fiber.Ctx) { c.Set("X-Robots-Tag", "noindex, noimageindex, nofollow") c.Set("Strict-Transport-Security", "max-age=31557600") c.Set("Permissions-Policy", "accelerometer=(), ambient-light-sensor=(), autoplay=(), battery=(), camera=(), cross-origin-isolated=(), display-capture=(), document-domain=(), encrypted-media=(), execution-while-not-rendered=(), execution-while-out-of-viewport=(), fullscreen=(self), geolocation=(), gyroscope=(), interest-cohort=(), magnetometer=(), microphone=(), midi=(), navigation-override=(), payment=(), picture-in-picture=(), publickey-credentials-get=(), screen-wake-lock=(), sync-xhr=(), usb=(), web-share=(), xr-spatial-tracking=()") +} + +func SetReqHeaders(req *http.Request) { + req.Header.Set("Accept", "*/*") + req.Header.Set("Accept-Language", "en-US,en;q=0.5") + req.Header.Set("Cache-Control", "no-cache") + req.Header.Set("Connection", "keep-alive") + req.Header.Set("Origin", "https://imgur.com") + req.Header.Set("Pragma", "no-cache") + req.Header.Set("Sec-Fetch-Dest", "empty") + req.Header.Set("Sec-Fetch-Mode", "cors") + req.Header.Set("Sec-Fetch-Site", "same-site") + req.Header.Set("User-Agent", "Mozilla/5.0 (Windows NT 10.0; rv:102.0) Gecko/20100101 Firefox/102.0") } \ No newline at end of file From 311bf9ef2556bc4606e28f0dbcad36ca48fe7530 Mon Sep 17 00:00:00 2001 From: video-prize-ranch Date: Fri, 26 May 2023 15:46:32 -0400 Subject: [PATCH 15/66] Remove old image caching --- utils/config.go | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/utils/config.go b/utils/config.go index 98c14d1..2931a98 100644 --- a/utils/config.go +++ b/utils/config.go @@ -44,26 +44,11 @@ func LoadConfig() { imgurId = os.Getenv("RIMGU_IMGUR_CLIENT_ID") } - imageCache := os.Getenv("IMAGE_CACHE") == "true" - - cleanupInterval, err := time.ParseDuration(os.Getenv("IMAGE_CACHE_CLEANUP_INTERVAL")) - if err != nil && imageCache { - log.Fatal("invalid configuration: invalid duration for IMAGE_CACHE_CLEANUP_INTERVAL") - } - - cacheDir := os.Getenv("IMAGE_CACHE_DIR") - if cacheDir == "" && imageCache { - log.Fatal("invalid configuration: no IMAGE_CACHE_DIR") - } - Config = config{ Port: port, Addr: addr, ImgurId: imgurId, FiberPrefork: os.Getenv("FIBER_PREFORK") == "true", - ImageCache: imageCache, - CleanupInterval: cleanupInterval, - CacheDir: cacheDir, Privacy: map[string]interface{}{ "set": os.Getenv("PRIVACY_NOT_COLLECTED") != "", "policy": os.Getenv("PRIVACY_POLICY"), From f0188614b055b6f5d295c46f72ad162d0daa5ac3 Mon Sep 17 00:00:00 2001 From: video-prize-ranch Date: Fri, 26 May 2023 15:52:17 -0400 Subject: [PATCH 16/66] Fix import --- utils/config.go | 1 - 1 file changed, 1 deletion(-) diff --git a/utils/config.go b/utils/config.go index 2931a98..5ce8377 100644 --- a/utils/config.go +++ b/utils/config.go @@ -1,7 +1,6 @@ package utils import ( - "log" "os" "time" ) From a16a302d5e092becb1f1a1022534c7347bbe0463 Mon Sep 17 00:00:00 2001 From: video-prize-ranch Date: Thu, 1 Jun 2023 21:06:28 -0400 Subject: [PATCH 17/66] Add rimgo.nohost.network (closes #110) --- README.md | 1 + instances.json | 40 ++++++++++++++++++++++++++-------------- 2 files changed, 27 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index b330e3c..49844fd 100644 --- a/README.md +++ b/README.md @@ -94,6 +94,7 @@ To help distribute load, consider using instances other than the official one. | [rimgo.in.projectsegfau.lt](https://rimgo.projectsegfau.lt/) | ๐Ÿ‡ฎ๐Ÿ‡ณ IN | Airtel | โœ… Data not collected | | | [rimgo.fascinated.cc](https://rimgo.fascinated.cc/) | ๐Ÿ‡บ๐Ÿ‡ธ US | Cloudflare | โœ… Data not collected | | | [rimgo.whateveritworks.org](https://rimgo.whateveritworks.org/) | ๐Ÿ‡ฉ๐Ÿ‡ช DE | Cloudflare | โœ… Data not collected | | +| [rimgo.nohost.network](https://rimgo.nohost.network/) | ๐Ÿ‡ฒ๐Ÿ‡ฝ US | Telmex | โœ… Data not collected | | ### Tor diff --git a/instances.json b/instances.json index c299b5f..dcc87b3 100644 --- a/instances.json +++ b/instances.json @@ -1,5 +1,4 @@ [ - { "url": "https://rimgo.pussthecat.org", "countries": [ @@ -55,7 +54,10 @@ { "url": "https://i.habedieeh.re", "onion": "http://i.habeehrhadazsw3izbrbilqajalfyqqln54mrja3iwpqxgcuxnus7eid.onion", - "i2p": ["rimgo.i2p", "rimgov7l2tqyrm5txrtvhtnfyrzkc5d7ipafofavchbnnyog4r3q.b32.i2p"], + "i2p": [ + "rimgo.i2p", + "rimgov7l2tqyrm5txrtvhtnfyrzkc5d7ipafofavchbnnyog4r3q.b32.i2p" + ], "countries": [ "ca" ], @@ -71,7 +73,10 @@ { "url": "https://ri.zzls.xyz", "onion": "http://rimgo.zzlsghu6mvvwyy75mvga6gaf4znbp3erk5xwfzedb4gg6qqh2j6rlvid.onion", - "i2p": ["rimgo.zzls.i2p", "p57356k2xwhxrg2lxrjajcftkrptv4zejeeblzfgkcvpzuetkz2a.b32.i2p"], + "i2p": [ + "rimgo.zzls.i2p", + "p57356k2xwhxrg2lxrjajcftkrptv4zejeeblzfgkcvpzuetkz2a.b32.i2p" + ], "countries": [ "cl" ], @@ -108,17 +113,24 @@ "cloudflare": true }, { - "url": "https://rimgo.fascinated.cc", - "countries": [ - "us" - ], - "cloudflare": true + "url": "https://rimgo.fascinated.cc", + "countries": [ + "us" + ], + "cloudflare": true }, { - "url": "https://rimgo.whateveritworks.org", - "countries": [ - "de" - ], - "cloudflare": true + "url": "https://rimgo.whateveritworks.org", + "countries": [ + "de" + ], + "cloudflare": true + }, + { + "url": "https://rimgo.nohost.network", + "countries": [ + "mx" + ], + "cloudflare": false } -] +] \ No newline at end of file From 922480f05aedd5434105e35a29f481966472d579 Mon Sep 17 00:00:00 2001 From: video-prize-ranch Date: Sat, 3 Jun 2023 02:53:50 +0000 Subject: [PATCH 18/66] Update 'README.md' --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 49844fd..8d0cfc2 100644 --- a/README.md +++ b/README.md @@ -94,7 +94,7 @@ To help distribute load, consider using instances other than the official one. | [rimgo.in.projectsegfau.lt](https://rimgo.projectsegfau.lt/) | ๐Ÿ‡ฎ๐Ÿ‡ณ IN | Airtel | โœ… Data not collected | | | [rimgo.fascinated.cc](https://rimgo.fascinated.cc/) | ๐Ÿ‡บ๐Ÿ‡ธ US | Cloudflare | โœ… Data not collected | | | [rimgo.whateveritworks.org](https://rimgo.whateveritworks.org/) | ๐Ÿ‡ฉ๐Ÿ‡ช DE | Cloudflare | โœ… Data not collected | | -| [rimgo.nohost.network](https://rimgo.nohost.network/) | ๐Ÿ‡ฒ๐Ÿ‡ฝ US | Telmex | โœ… Data not collected | | +| [rimgo.nohost.network](https://rimgo.nohost.network/) | ๐Ÿ‡ฒ๐Ÿ‡ฝ MX | Telmex | โœ… Data not collected | | ### Tor From 4de1fa1e79f7e7564f205c91a5cd0afa7e6a6318 Mon Sep 17 00:00:00 2001 From: video-prize-ranch Date: Sat, 10 Jun 2023 12:04:29 -0400 Subject: [PATCH 19/66] Merge redesign into main (#111) --- .air.toml | 47 +++++++++++ .dockerignore | 6 +- .gitignore | 6 +- api/user.go | 10 ++- main.go | 51 +++++++---- pages/about.go | 22 +++++ pages/frontpage.go | 9 +- pages/media.go | 12 ++- pages/post.go | 4 +- pages/privacy.go | 2 - pages/tag.go | 4 +- pages/user.go | 8 +- static/icons/PhArrowFatDown.svg | 1 + static/icons/PhArrowFatUp.svg | 1 + static/icons/PhChat.svg | 1 + static/icons/PhCheckCircle.svg | 1 + static/icons/PhDevices.svg | 1 + static/icons/PhEye.svg | 1 + static/icons/PhGlobe.svg | 1 + static/icons/PhLink.svg | 1 + static/icons/PhWarning.svg | 1 + static/icons/PhWarningCircle.svg | 1 + static/icons/PhWrench.svg | 1 + static/icons/alert-circle.svg | 1 - static/icons/alert-triangle.svg | 1 - static/icons/check-circle.svg | 1 - static/icons/chevron-down.svg | 1 - static/icons/chevron-up.svg | 1 - static/icons/eye.svg | 1 - static/icons/hash.svg | 1 - static/icons/link.svg | 1 - static/icons/message-square.svg | 1 - static/icons/smartphone.svg | 1 - static/icons/tool.svg | 1 - static/tailwind.css | 74 ++++++++++++++++ tailwind.config.js | 8 ++ views/about.hbs | 105 +++++++++++++++++++++++ views/errors/404.hbs | 15 ++-- views/errors/429.hbs | 15 ++-- views/errors/error.hbs | 17 ++-- views/frontpage.hbs | 133 +++++++++-------------------- views/partials/comment.hbs | 22 ++--- views/partials/footer.hbs | 16 +++- views/partials/head.hbs | 3 +- views/partials/header.hbs | 8 -- views/partials/nav.hbs | 6 ++ views/partials/post.hbs | 16 ++-- views/partials/privacy.hbs | 48 +++++++++++ views/post.hbs | 51 +++++------ views/privacy.hbs | 141 ++++++++++--------------------- views/tag.hbs | 57 ++++++------- views/user.hbs | 31 +++---- 52 files changed, 598 insertions(+), 371 deletions(-) create mode 100644 .air.toml create mode 100644 pages/about.go create mode 100644 static/icons/PhArrowFatDown.svg create mode 100644 static/icons/PhArrowFatUp.svg create mode 100644 static/icons/PhChat.svg create mode 100644 static/icons/PhCheckCircle.svg create mode 100644 static/icons/PhDevices.svg create mode 100644 static/icons/PhEye.svg create mode 100644 static/icons/PhGlobe.svg create mode 100644 static/icons/PhLink.svg create mode 100644 static/icons/PhWarning.svg create mode 100644 static/icons/PhWarningCircle.svg create mode 100644 static/icons/PhWrench.svg delete mode 100644 static/icons/alert-circle.svg delete mode 100644 static/icons/alert-triangle.svg delete mode 100644 static/icons/check-circle.svg delete mode 100644 static/icons/chevron-down.svg delete mode 100644 static/icons/chevron-up.svg delete mode 100644 static/icons/eye.svg delete mode 100644 static/icons/hash.svg delete mode 100644 static/icons/link.svg delete mode 100644 static/icons/message-square.svg delete mode 100644 static/icons/smartphone.svg delete mode 100644 static/icons/tool.svg create mode 100644 static/tailwind.css create mode 100644 tailwind.config.js create mode 100644 views/about.hbs delete mode 100644 views/partials/header.hbs create mode 100644 views/partials/nav.hbs create mode 100644 views/partials/privacy.hbs diff --git a/.air.toml b/.air.toml new file mode 100644 index 0000000..bbd4b15 --- /dev/null +++ b/.air.toml @@ -0,0 +1,47 @@ +# Config file for [Air](https://github.com/cosmtrek/air) in TOML format + +# Working directory +# . or absolute path, please note that the directories following must be under root. +root = "." +tmp_dir = "tmp" + +[build] +# Just plain old shell command. You could use `make` as well. +cmd = "ENV=dev go build -o ./tmp/rimgo ./main.go" +# Binary file yields from `cmd`. +bin = "./tmp/rimgo" +# Customize binary. +full_bin = "./tmp/rimgo" +# Watch these filename extensions. +include_ext = ["go", "tpl", "tmpl", "html", "mustache", "hbs", "pug", "css"] +# Ignore these filename extensions or directories. +exclude_dir = ["tmp", "vendor", "node_modules"] +# Watch these directories if you specified. +include_dir = [] +# Exclude files. +exclude_file = [] +# This log file places in your tmp_dir. +log = "air.log" +# It's not necessary to trigger build each time file changes if it's too frequent. +delay = 1000 # ms +# Stop running old binary when build errors occur. +stop_on_error = true +# Send Interrupt signal before killing process (windows does not support this feature) +send_interrupt = false +# Delay after sending Interrupt signal +kill_delay = 500 # ms + +[log] +# Show log time +time = false + +[color] +# Customize each part's color. If no color found, use the raw app log. +main = "magenta" +watcher = "cyan" +build = "yellow" +runner = "green" + +[misc] +# Delete tmp directory on exit +clean_on_exit = true \ No newline at end of file diff --git a/.dockerignore b/.dockerignore index 67ab480..8db6a73 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1,3 +1,3 @@ -node_modules -samples -dist +.env +tmp +static/app.css \ No newline at end of file diff --git a/.gitignore b/.gitignore index d14eab8..8db6a73 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -dist -node_modules -.env \ No newline at end of file +.env +tmp +static/app.css \ No newline at end of file diff --git a/api/user.go b/api/user.go index 404a3ef..dd8fd1c 100644 --- a/api/user.go +++ b/api/user.go @@ -3,6 +3,7 @@ package api import ( "io" "net/http" + "regexp" "strings" "sync" "time" @@ -34,6 +35,8 @@ type Submission struct { IsAlbum bool } +var imgurRe = regexp.MustCompile(`https?://i?\.?imgur\.com`) + func (client *Client) FetchUser(username string) (User, error) { cacheData, found := client.Cache.Get(username + "-user") if found { @@ -108,10 +111,15 @@ func (client *Client) FetchSubmissions(username string, sort string, page string } id := value.Get("id").String() + + link := "/a/" + id + if value.Get("in_gallery").Bool() { + link = "/gallery/" + id + } submissions = append(submissions, Submission{ Id: id, - Link: "/a/" + id, + Link: link, Title: value.Get("title").String(), Cover: cover, Points: value.Get("points").Int(), diff --git a/main.go b/main.go index e20f8f5..486391a 100644 --- a/main.go +++ b/main.go @@ -4,6 +4,7 @@ import ( "flag" "fmt" "net/http" + "os" "time" "codeberg.org/video-prize-ranch/rimgo/pages" @@ -29,8 +30,12 @@ func main() { pages.InitializeApiClient() - engine := handlebars.NewFileSystem(http.FS(views.GetFiles()), ".hbs") - + views := http.FS(views.GetFiles()) + if os.Getenv("ENV") == "dev" { + views = http.Dir("./views") + } + engine := handlebars.NewFileSystem(views, ".hbs") + engine.AddFunc("noteq", func(a interface{}, b interface{}, options *raymond.Options) interface{} { if raymond.Str(a) != raymond.Str(b) { return options.Fn() @@ -67,19 +72,34 @@ func main() { fmt.Println(e) }, })) - app.Use("/static", filesystem.New(filesystem.Config{ - Next: func(c *fiber.Ctx) bool { - c.Response().Header.Add("Cache-Control", "public,max-age=2592000") - return false - }, - Root: http.FS(static.GetFiles()), - })) - app.Use(cache.New(cache.Config{ - Expiration: 30 * time.Minute, - MaxBytes: 25000000, - CacheControl: true, - StoreResponseHeaders: true, - })) + + if os.Getenv("ENV") == "dev" { + app.Use("/static", filesystem.New(filesystem.Config{ + MaxAge: 2592000, + Root: http.Dir("./static"), + })) + app.Get("/errors/429", func(c *fiber.Ctx) error { + return c.Render("errors/429", nil) + }) + app.Get("/errors/404", func(c *fiber.Ctx) error { + return c.Render("errors/404", nil) + }) + app.Get("/errors/error", func(c *fiber.Ctx) error { + return c.Render("errors/error", fiber.Map{ + "err": "Test error", + }) + }) + } else { + app.Use("/static", filesystem.New(filesystem.Config{ + Root: http.FS(static.GetFiles()), + })) + app.Use(cache.New(cache.Config{ + Expiration: 30 * time.Minute, + MaxBytes: 25000000, + CacheControl: true, + StoreResponseHeaders: true, + })) + } app.Get("/robots.txt", func(c *fiber.Ctx) error { file, _ := static.GetFiles().ReadFile("robots.txt") @@ -93,6 +113,7 @@ func main() { }) app.Get("/", pages.HandleFrontpage) + app.Get("/about", pages.HandleAbout) app.Get("/privacy", pages.HandlePrivacy) app.Get("/a/:postID", pages.HandlePost) app.Get("/a/:postID/embed", pages.HandleEmbed) diff --git a/pages/about.go b/pages/about.go new file mode 100644 index 0000000..b4328ae --- /dev/null +++ b/pages/about.go @@ -0,0 +1,22 @@ +package pages + +import ( + "os" + + "codeberg.org/video-prize-ranch/rimgo/utils" + "github.com/gofiber/fiber/v2" +) + + +func HandleAbout(c *fiber.Ctx) error { + utils.SetHeaders(c) + c.Set("X-Frame-Options", "DENY") + c.Set("Cache-Control", "public,max-age=31557600") + c.Set("Content-Security-Policy", "default-src 'none'; frame-ancestors 'none'; base-uri 'none'; form-action 'none'; style-src 'self'; img-src 'self'; manifest-src 'self'; block-all-mixed-content") + + return c.Render("about", fiber.Map{ + "proto": c.Protocol(), + "domain": c.Hostname(), + "force_webp": os.Getenv("FORCE_WEBP"), + }) +} \ No newline at end of file diff --git a/pages/frontpage.go b/pages/frontpage.go index 4bd400a..55e2f00 100644 --- a/pages/frontpage.go +++ b/pages/frontpage.go @@ -1,12 +1,12 @@ package pages import ( - "os" - "codeberg.org/video-prize-ranch/rimgo/utils" "github.com/gofiber/fiber/v2" ) +var VersionInfo string + func HandleFrontpage(c *fiber.Ctx) error { utils.SetHeaders(c) c.Set("X-Frame-Options", "DENY") @@ -14,8 +14,7 @@ func HandleFrontpage(c *fiber.Ctx) error { c.Set("Content-Security-Policy", "default-src 'none'; frame-ancestors 'none'; base-uri 'none'; form-action 'none'; style-src 'self'; img-src 'self'; manifest-src 'self'; block-all-mixed-content") return c.Render("frontpage", fiber.Map{ - "proto": c.Protocol(), - "domain": c.Hostname(), - "force_webp": os.Getenv("FORCE_WEBP"), + "config": utils.Config, + "version": VersionInfo, }) } \ No newline at end of file diff --git a/pages/media.go b/pages/media.go index ebd27af..dd58c30 100644 --- a/pages/media.go +++ b/pages/media.go @@ -59,17 +59,21 @@ func handleMedia(c *fiber.Ctx, url string) error { c.Status(res.StatusCode) if res.StatusCode == 404 { - return c.Render("errors/404", nil) + return c.Render("errors/404", fiber.Map{ + "path": c.Path(), + }) } else if res.StatusCode == 429 { - return c.Render("errors/429", nil) + return c.Render("errors/429", fiber.Map{ + "path": c.Path(), + }) } - + c.Set("Accept-Ranges", "bytes") c.Set("Content-Type", res.Header.Get("Content-Type")); c.Set("Content-Length", res.Header.Get("Content-Length")) if res.Header.Get("Content-Range") != "" { c.Set("Content-Range", res.Header.Get("Content-Range")) } - + return c.SendStream(res.Body) } \ No newline at end of file diff --git a/pages/post.go b/pages/post.go index 93b4d55..03020f3 100644 --- a/pages/post.go +++ b/pages/post.go @@ -24,7 +24,9 @@ func HandlePost(c *fiber.Ctx) error { post, err = ApiClient.FetchMedia(c.Params("postID")) } if err != nil && err.Error() == "ratelimited by imgur" { - return c.Status(429).Render("errors/429", nil) + return c.Status(429).Render("errors/429", fiber.Map{ + "path": c.Path(), + }) } if err != nil && post.Id == "" && strings.Contains(err.Error(), "404") { return c.Status(404).Render("errors/404", nil) diff --git a/pages/privacy.go b/pages/privacy.go index d0bc026..163fbea 100644 --- a/pages/privacy.go +++ b/pages/privacy.go @@ -6,8 +6,6 @@ import ( "codeberg.org/video-prize-ranch/rimgo/utils" ) -var VersionInfo string - func HandlePrivacy(c *fiber.Ctx) error { utils.SetHeaders(c) c.Set("X-Frame-Options", "DENY") diff --git a/pages/tag.go b/pages/tag.go index 611148d..fa62f9c 100644 --- a/pages/tag.go +++ b/pages/tag.go @@ -30,7 +30,9 @@ func HandleTag(c *fiber.Ctx) error { tag, err := ApiClient.FetchTag(c.Params("tag"), c.Query("sort"), page) if err != nil && err.Error() == "ratelimited by imgur" { - return c.Status(429).Render("errors/429", nil) + return c.Status(429).Render("errors/429", fiber.Map{ + "path": c.Path(), + }) } if err != nil { return err diff --git a/pages/user.go b/pages/user.go index 2756a22..285d44e 100644 --- a/pages/user.go +++ b/pages/user.go @@ -25,7 +25,9 @@ func HandleUser(c *fiber.Ctx) error { user, err := ApiClient.FetchUser(c.Params("userID")) if err != nil && err.Error() == "ratelimited by imgur" { - return c.Status(429).Render("errors/429", nil) + return c.Status(429).Render("errors/429", fiber.Map{ + "path": c.Path(), + }) } if err != nil { return err @@ -37,7 +39,9 @@ func HandleUser(c *fiber.Ctx) error { submissions, err := ApiClient.FetchSubmissions(c.Params("userID"), "newest", page) if err != nil && err.Error() == "ratelimited by imgur" { c.Status(429) - return c.Render("errors/429", nil) + return c.Render("errors/429", fiber.Map{ + "path": c.Path(), + }) } if err != nil { return err diff --git a/static/icons/PhArrowFatDown.svg b/static/icons/PhArrowFatDown.svg new file mode 100644 index 0000000..6be1c31 --- /dev/null +++ b/static/icons/PhArrowFatDown.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/static/icons/PhArrowFatUp.svg b/static/icons/PhArrowFatUp.svg new file mode 100644 index 0000000..0340317 --- /dev/null +++ b/static/icons/PhArrowFatUp.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/static/icons/PhChat.svg b/static/icons/PhChat.svg new file mode 100644 index 0000000..0d1b7a9 --- /dev/null +++ b/static/icons/PhChat.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/static/icons/PhCheckCircle.svg b/static/icons/PhCheckCircle.svg new file mode 100644 index 0000000..bb2719d --- /dev/null +++ b/static/icons/PhCheckCircle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/static/icons/PhDevices.svg b/static/icons/PhDevices.svg new file mode 100644 index 0000000..69fcaa0 --- /dev/null +++ b/static/icons/PhDevices.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/static/icons/PhEye.svg b/static/icons/PhEye.svg new file mode 100644 index 0000000..d782f5d --- /dev/null +++ b/static/icons/PhEye.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/static/icons/PhGlobe.svg b/static/icons/PhGlobe.svg new file mode 100644 index 0000000..d874f1c --- /dev/null +++ b/static/icons/PhGlobe.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/static/icons/PhLink.svg b/static/icons/PhLink.svg new file mode 100644 index 0000000..0f841e5 --- /dev/null +++ b/static/icons/PhLink.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/static/icons/PhWarning.svg b/static/icons/PhWarning.svg new file mode 100644 index 0000000..4b0e5c1 --- /dev/null +++ b/static/icons/PhWarning.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/static/icons/PhWarningCircle.svg b/static/icons/PhWarningCircle.svg new file mode 100644 index 0000000..2db71db --- /dev/null +++ b/static/icons/PhWarningCircle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/static/icons/PhWrench.svg b/static/icons/PhWrench.svg new file mode 100644 index 0000000..a5dff99 --- /dev/null +++ b/static/icons/PhWrench.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/static/icons/alert-circle.svg b/static/icons/alert-circle.svg deleted file mode 100644 index dcc802a..0000000 --- a/static/icons/alert-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/static/icons/alert-triangle.svg b/static/icons/alert-triangle.svg deleted file mode 100644 index 53c4326..0000000 --- a/static/icons/alert-triangle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/static/icons/check-circle.svg b/static/icons/check-circle.svg deleted file mode 100644 index cef44f3..0000000 --- a/static/icons/check-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/static/icons/chevron-down.svg b/static/icons/chevron-down.svg deleted file mode 100644 index affee97..0000000 --- a/static/icons/chevron-down.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/static/icons/chevron-up.svg b/static/icons/chevron-up.svg deleted file mode 100644 index 0fd7760..0000000 --- a/static/icons/chevron-up.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/static/icons/eye.svg b/static/icons/eye.svg deleted file mode 100644 index 4fdb2ba..0000000 --- a/static/icons/eye.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/static/icons/hash.svg b/static/icons/hash.svg deleted file mode 100644 index 267dc0e..0000000 --- a/static/icons/hash.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/static/icons/link.svg b/static/icons/link.svg deleted file mode 100644 index a983646..0000000 --- a/static/icons/link.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/static/icons/message-square.svg b/static/icons/message-square.svg deleted file mode 100644 index 416a7ca..0000000 --- a/static/icons/message-square.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/static/icons/smartphone.svg b/static/icons/smartphone.svg deleted file mode 100644 index 56cb714..0000000 --- a/static/icons/smartphone.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/static/icons/tool.svg b/static/icons/tool.svg deleted file mode 100644 index 91fc16e..0000000 --- a/static/icons/tool.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/static/tailwind.css b/static/tailwind.css new file mode 100644 index 0000000..dfb7445 --- /dev/null +++ b/static/tailwind.css @@ -0,0 +1,74 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; + +body { + margin: 0 24vw; +} + +p a { + text-decoration: underline +} + +.posts { + margin-top: 1em; + display: grid; + grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); + grid-auto-rows: 1fr; + gap: 1rem; +} + +.posts img:not(.icon), +.posts video:not(:fullscreen) { + object-fit: cover; + aspect-ratio: 1; +} + +#comments__expandBtn { + display: none; +} + +.comments__expandBtn__label { + display: flex; + flex-direction: row; + justify-content: space-between; + align-items: center; + cursor: pointer; + user-select: none; + text-decoration: none; + color: #fff +} + +.comments__expandBtn__icon { + font-size: 24px; +} + +#comments__expandBtn ~ .comments__expandBtn__label > span::after { + content: "โŒ„"; +} + +#comments__expandBtn:checked ~ .comments__expandBtn__label > span::after { + content: "โŒƒ"; +} + +#comments__expandBtn:checked ~ .comments { + display: none; +} + +.comment__media { + height: 12em; + display: block; + margin: 0.5em 0; +} + +@media only screen and (max-width: 1280px) { + body { + margin: 0 8vw; + } +} + +@media only screen and (max-width: 812px) { + body { + margin: 0 4vw; + } +} \ No newline at end of file diff --git a/tailwind.config.js b/tailwind.config.js new file mode 100644 index 0000000..714d24f --- /dev/null +++ b/tailwind.config.js @@ -0,0 +1,8 @@ +module.exports = { + content: ["./views/*.hbs", "./views/**/*.hbs"], + theme: { + extend: {}, + }, + variants: {}, + plugins: [], +}; \ No newline at end of file diff --git a/views/about.hbs b/views/about.hbs new file mode 100644 index 0000000..f0965bc --- /dev/null +++ b/views/about.hbs @@ -0,0 +1,105 @@ + + + + + About - rimgo + + {{> partials/head }} + + + + {{> partials/nav }} + +
+

An alternative frontend for Imgur. Originally based on rimgu.

+ +

Features

+
    +
  • Lightweight
  • +
  • No JavaScript
  • +
  • No ads or tracking
  • +
  • No sign up or app install prompts
  • +
  • Bandwidth efficient - automatically uses newer image formats (if enabled)
  • +
+ +

Comparison

+

Comparing rimgo to Imgur.

+ +

Speed

+

Tested using Google PageSpeed Insights.

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
rimgoImgur
Performance9128
Request count29340
Resource Size218 KiB2,542 KiB
Time to Interactive1.6s23.8s
+ +

Privacy

+

Imgur collects information about your device and uses tracking cookies for advertising, this is mentioned in their privacy policy. Blacklight found 31 trackers and 87 third-party cookies.

+

See what cookies and trackers Imgur uses and where your data gets sent: https://themarkup.org/blacklight?url=imgur.com

+ +

Usage

+

Just replace imgur.com or i.imgur.com with {{domain}} (add stack/ before the media ID for i.stack.imgur.com). You can setup automatic redirects using LibRedirect (recommended) or Redirector.

+ + {{#if force_webp}} +

To download images as their original filetype, add ?no_webp=1 to the end of the image URL.

+ {{/if}} + +

Automatically redirect links

+ +

LibRedirect

+

Use LibRedirect to automatically redirect Imgur links to rimgo!

+ +

GreaseMonkey script

+

There is a script to redirect Imgur links to rimgo. https://codeberg.org/zortazert/GreaseMonkey-Redirect/src/branch/main/imgur-to-rimgo.user.js

+ +

Redirector

+

You can use the Redirector extension to redirect Imgur links to rimgo with the configuration below:

+
    +
  • Description: Imgur -> rimgo
  • +
  • Example URL: https://imgur.com/a/H8M4rcp
  • +
  • Include pattern: ^https?://i?.?imgur.com(/.*)?$
  • +
  • Redirect to: {{proto}}://{{domain}}$1
  • +
  • Pattern type: Regular Expression
  • +
  • Advanced Options > Apply to: Check Images
  • +
+
+

For Stack Overflow Images:

+
    +
  • Description: Stack Overflow Imgur -> rimgo
  • +
  • Example URL: https://i.stack.imgur.com/BTKqD.png?s=128&g=1
  • +
  • Include pattern: ^https?://i\.stack\.imgur\.com(/.*)?$
  • +
  • Redirect to: {{proto}}://{{domain}}/stack$1
  • +
  • Pattern type: Regular Expression
  • +
  • Advanced Options > Apply to: Check Images
  • +
+ +

Notice

+

All images and media are from Imgur. rimgo does not allow uploads or comments. Any issues with content should be reported to Imgur.

+
+ + {{> partials/footer }} + + + \ No newline at end of file diff --git a/views/errors/404.hbs b/views/errors/404.hbs index 58e6c0a..8257d0a 100644 --- a/views/errors/404.hbs +++ b/views/errors/404.hbs @@ -2,21 +2,20 @@ - {{> 'partials/head' }} + Not Found - rimgo - - - 404 Not Found - rimgo + {{> partials/head }} - - {{> 'partials/header' }} + + {{> partials/nav }}
-

404 Not Found

-

Click here to return to home.

+

Not Found

+

Click here to return to home.

+ {{> partials/footer }} \ No newline at end of file diff --git a/views/errors/429.hbs b/views/errors/429.hbs index d80eb4d..0b46b65 100644 --- a/views/errors/429.hbs +++ b/views/errors/429.hbs @@ -2,21 +2,20 @@ - {{> 'partials/head' }} - - - Rate limited by Imgur - rimgo + + {{> partials/head }} - - {{> 'partials/header' }} + + {{> partials/nav }}
-

Rate limited by Imgur

-

This instance has been temporarily blocked by Imgur. Try using another instance.

+

Rate limited by Imgur

+

This instance has been temporarily blocked by Imgur. Try using another instance >

+ {{> partials/footer }} \ No newline at end of file diff --git a/views/errors/error.hbs b/views/errors/error.hbs index 39b1ed4..354f0f5 100644 --- a/views/errors/error.hbs +++ b/views/errors/error.hbs @@ -2,22 +2,21 @@ - {{> 'partials/head' }} - - - Error - rimgo + + {{> partials/head }} - - {{> 'partials/header' }} + + {{> partials/nav }} -
-

An error occurred

+
+

An error occurred

You may have found a bug in rimgo. If this is a bug, open an issue on Codeberg.

- {{err}} + {{err}}
+ {{> partials/footer }} \ No newline at end of file diff --git a/views/frontpage.hbs b/views/frontpage.hbs index b35159d..f9beb9c 100644 --- a/views/frontpage.hbs +++ b/views/frontpage.hbs @@ -5,104 +5,49 @@ rimgo {{> partials/head }} - - - - - {{> partials/header }} - -
-

An alternative frontend for Imgur. Originally based on rimgu.

- -

Features

-
    -
  • Lightweight
  • -
  • No JavaScript
  • -
  • No ads or tracking
  • -
  • No sign up or app install prompts
  • -
  • Bandwidth efficient - automatically uses newer image formats (if enabled)
  • -
- -

Comparison

-

Comparing rimgo to Imgur.

- -

Speed

-

Tested using Google PageSpeed Insights.

- - - - - - - - - - - - - - - - - - - - - - - - - - -
rimgoImgur
Performance9128
Request count29340
Resource Size218 KiB2,542 KiB
Time to Interactive1.6s23.8s
- -

Privacy

-

Imgur collects information about your device and uses tracking cookies for advertising, this is mentioned in their privacy policy. Blacklight found 31 trackers and 87 third-party cookies.

-

See what cookies and trackers Imgur uses and where your data gets sent: https://themarkup.org/blacklight?url=imgur.com

- -

Usage

-

Just replace imgur.com or i.imgur.com with {{domain}} (add stack/ before the media ID for i.stack.imgur.com). You can setup automatic redirects using LibRedirect (recommended) or Redirector.

- - {{#if force_webp}} -

To download images as their original filetype, add ?no_webp=1 to the end of the image URL.

- {{/if}} - -

Automatically redirect links

- -

LibRedirect

-

Use LibRedirect to automatically redirect Imgur links to rimgo!

- -

GreaseMonkey script

-

There is a script to redirect Imgur links to rimgo. https://codeberg.org/zortazert/GreaseMonkey-Redirect/src/branch/main/imgur-to-rimgo.user.js

- -

Redirector

-

You can use the Redirector extension to redirect Imgur links to rimgo with the configuration below:

-
    -
  • Description: Imgur -> rimgo
  • -
  • Example URL: https://imgur.com/a/H8M4rcp
  • -
  • Include pattern: ^https?://i?.?imgur.com(/.*)?$
  • -
  • Redirect to: {{proto}}://{{domain}}$1
  • -
  • Pattern type: Regular Expression
  • -
  • Advanced Options > Apply to: Check Images
  • -
- -

For Stack Overflow Images:

-
    -
  • Description: Stack Overflow Imgur -> rimgo
  • -
  • Example URL: https://i.stack.imgur.com/BTKqD.png?s=128&g=1
  • -
  • Include pattern: ^https?://i\.stack\.imgur\.com(/.*)?$
  • -
  • Redirect to: {{proto}}://{{domain}}/stack$1
  • -
  • Pattern type: Regular Expression
  • -
  • Advanced Options > Apply to: Check Images
  • -
- -

Notice

+ + {{> partials/nav }} + +
+

The fast, private image viewer for Imgur.

+ +
+ +
+

What is rimgo?

+

+ rimgo is an alternative frontend for Imgur. + Originally based on rimgu. + It's a way to access Imgur without the ads, tracking, and other garbage. + rimgo is not affiliated with Imgur, all content is proxied from Imgur. +

+
+

Notice

All images and media are from Imgur. rimgo does not allow uploads or comments. Any issues with content should be reported to Imgur.

- + +

This instance

+
+ {{> partials/privacy }} +
+

Additional information

+
    +
  • Version: {{version}}
  • +
  • Country: {{config.Privacy.country}}
  • +
  • Provider: {{config.Privacy.provider}}
  • + {{#if config.Privacy.cloudflare}} +
  • Using Cloudflare?: Yes
  • + {{else}} +
  • Using Cloudflare?: No
  • + {{/if}} +
+
+
+

Learn more about instance privacy >

+ {{> partials/footer }} - + \ No newline at end of file diff --git a/views/partials/comment.hbs b/views/partials/comment.hbs index f8dd8ff..476f868 100644 --- a/views/partials/comment.hbs +++ b/views/partials/comment.hbs @@ -1,30 +1,32 @@ -
-
+
+
{{#noteq this.User.Username "[deleted]"}} - + -

{{this.User.Username}}

+

{{this.User.Username}}

{{/noteq}} {{#equal this.User.Username "[deleted]"}} -

[deleted]

+

[deleted]

{{/equal}}

{{{this.Comment}}}

-
+
{{this.RelTime}} {{#if this.DeletedAt}} - (deleted {{this.DeletedAt}}) + (deleted {{this.DeletedAt}}) {{/if}} | - Likes {{this.Upvotes}} - Dislikes {{this.Downvotes}} + Likes {{this.Upvotes}} + Dislikes {{this.Downvotes}}
-
+ {{#if this.Comments}} +
{{#each this.Comments}} {{> partials/comment }} {{/each}}
+ {{/if}}
\ No newline at end of file diff --git a/views/partials/footer.hbs b/views/partials/footer.hbs index 93376c1..3aab847 100644 --- a/views/partials/footer.hbs +++ b/views/partials/footer.hbs @@ -1,4 +1,14 @@ -