Skip to content

Commit

Permalink
deal with a bunch of dumb malformed urls hitting demo site
Browse files Browse the repository at this point in the history
again, I shouldn't accommodate this, but I'm tired of the dumb errors
  • Loading branch information
janoside committed Nov 18, 2024
1 parent 4b9bf30 commit 70f6f8d
Show file tree
Hide file tree
Showing 4 changed files with 119 additions and 8 deletions.
2 changes: 2 additions & 0 deletions app.js
Original file line number Diff line number Diff line change
Expand Up @@ -118,6 +118,7 @@ debugLog(`Default cacheId '${global.cacheId}'`);
global.btcNodeSemver = "0.0.0";


const cleanupRouter = require('./routes/cleanupRouter.js');
const baseActionsRouter = require('./routes/baseRouter.js');
const internalApiActionsRouter = require('./routes/internalApiRouter.js');
const apiActionsRouter = require('./routes/apiRouter.js');
Expand Down Expand Up @@ -1153,6 +1154,7 @@ expressApp.use(csrfProtection, (req, res, next) => {
next();
});

expressApp.use(config.baseUrl, cleanupRouter);
expressApp.use(config.baseUrl, baseActionsRouter);
expressApp.use(config.baseUrl + 'internal-api/', internalApiActionsRouter);
expressApp.use(config.baseUrl + 'api/', apiActionsRouter);
Expand Down
2 changes: 1 addition & 1 deletion app/utils.js
Original file line number Diff line number Diff line change
Expand Up @@ -979,7 +979,7 @@ function logError(errorId, err, optionalUserData = {}, logStacktrace=true) {
};
}

if (optionalUserData && err.message) {
if (optionalUserData && err && err.message) {
optionalUserData.errorMsg = err.message;
}

Expand Down
7 changes: 0 additions & 7 deletions routes/baseRouter.js
Original file line number Diff line number Diff line change
Expand Up @@ -1360,13 +1360,6 @@ router.get("/block-analysis", function(req, res, next) {
next();
});

/*
router.get("/tx/tx/:transactionId", asyncHandler(async (req, res, next) => {
res.redirect(301, `${config.baseUrl}tx/${req.params.transactionId}`);
return;
}));*/

router.get("/tx/:transactionId@:blockHeight", asyncHandler(async (req, res, next) => {
req.query.blockHeight = req.params.blockHeight;
req.url = "/tx/" + req.params.transactionId;
Expand Down
116 changes: 116 additions & 0 deletions routes/cleanupRouter.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,116 @@
"use strict";

const debug = require("debug");
const debugLog = debug("btcexp:cleanup");

const express = require('express');
const csrfApi = require('csurf');
const router = express.Router();
const util = require('util');
const moment = require('moment');
const qrcode = require('qrcode');
const bitcoinjs = require('bitcoinjs-lib');
const bip32 = require('bip32');
const bs58check = require('bs58check');
const { bech32, bech32m } = require("bech32");
const sha256 = require("crypto-js/sha256");
const hexEnc = require("crypto-js/enc-hex");
const Decimal = require("decimal.js");
const semver = require("semver");
const markdown = require("markdown-it")();
const asyncHandler = require("express-async-handler");

const utils = require('./../app/utils.js');
const coins = require("./../app/coins.js");
const config = require("./../app/config.js");
const coreApi = require("./../app/api/coreApi.js");
const addressApi = require("./../app/api/addressApi.js");
const rpcApi = require("./../app/api/rpcApi.js");
const btcQuotes = require("./../app/coins/btcQuotes.js");



function logUrlError(req, type) {
let userAgent = req.headers['user-agent'];

utils.logError(`DoubleUrl`, null, {"type": "block/block", "userAgent":userAgent}, false);
}



router.get("/block/block/:blockHash", asyncHandler(async (req, res, next) => {
logUrlError(req, "block/block");

res.redirect(301, `${config.baseUrl}block/${req.params.blockHash}`);

return;
}));

router.get("/block/address/:address", asyncHandler(async (req, res, next) => {
logUrlError(req, "block/address");

res.redirect(301, `${config.baseUrl}address/${req.params.address}`);

return;
}));

router.get("/block/tx/:txid", asyncHandler(async (req, res, next) => {
logUrlError(req, "block/tx");

res.redirect(301, `${config.baseUrl}tx/${req.params.txid}`);

return;
}));





router.get("/tx/tx/:transactionId", asyncHandler(async (req, res, next) => {
logUrlError(req, "tx/tx");

res.redirect(301, `${config.baseUrl}tx/${req.params.transactionId}`);

return;
}));

router.get("/tx/block/:blockHash", asyncHandler(async (req, res, next) => {
logUrlError(req, "block/tx");

res.redirect(301, `${config.baseUrl}block/${req.params.blockHash}`);

return;
}));






router.get("/block-height/address/:address", asyncHandler(async (req, res, next) => {
logUrlError(req, "block-height/address");

res.redirect(301, `${config.baseUrl}address/${req.params.address}`);

return;
}));

router.get("/block-height/tx/:txid", asyncHandler(async (req, res, next) => {
logUrlError(req, "block-height/tx");

res.redirect(301, `${config.baseUrl}tx/${req.params.txid}`);

return;
}));

router.get("/block-height/block-height/:blockHeight", asyncHandler(async (req, res, next) => {
logUrlError(req, "block-height/block-height");

res.redirect(301, `${config.baseUrl}block-height/${req.params.blockHeight}`);

return;
}));



module.exports = router;

0 comments on commit 70f6f8d

Please sign in to comment.