diff --git a/.gitignore b/.gitignore index b38db2f..cd0234e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ node_modules/ build/ +.env \ No newline at end of file diff --git a/.idea/prettier.xml b/.idea/prettier.xml new file mode 100644 index 0000000..0c83ac4 --- /dev/null +++ b/.idea/prettier.xml @@ -0,0 +1,7 @@ + + + + + \ No newline at end of file diff --git a/.swcrc b/.swcrc new file mode 100644 index 0000000..41b5f63 --- /dev/null +++ b/.swcrc @@ -0,0 +1,25 @@ +{ + "$schema": "https://swc.rs/schema.json", + "jsc": { + "parser": { + "syntax": "typescript", + "jsx": false, + "dynamicImport": false, + "privateMethod": false, + "functionBind": false, + "exportDefaultFrom": false, + "exportNamespaceFrom": false, + "decorators": false, + "decoratorsBeforeExport": false, + "topLevelAwait": true, + "importMeta": false + }, + "transform": null, + "target": "es5", + "loose": false, + "externalHelpers": false, + // Requires v1.2.50 or upper and requires target to be es2016 or upper. + "keepClassNames": false + }, + "minify": false +} diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..2acc152 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,9 @@ +FROM node + +COPY . . + +RUN npm ci + +#TODO need to grab a bundler to build + +ENTRYPOINT npm run dev \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index d81a156..11ca377 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,13 +9,17 @@ "version": "1.0.0", "license": "ISC", "dependencies": { - "discord.js": "^14.15.3" + "cheerio": "^1.0.0", + "discord.js": "^14.15.3", + "dotenv": "^16.4.5" }, "devDependencies": { "@swc-node/register": "^1.10.9", "@swc/cli": "^0.4.0", "@swc/core": "^1.7.22", - "vitest": "^2.0.5" + "prettier": "^3.3.3", + "vitest": "^2.0.5", + "vitest-fetch-mock": "^0.3.0" } }, "node_modules/@ampproject/remapping": { @@ -1848,6 +1852,11 @@ "node": ">=6" } }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==" + }, "node_modules/brace-expansion": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", @@ -1951,6 +1960,54 @@ "node": ">= 16" } }, + "node_modules/cheerio": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0.tgz", + "integrity": "sha512-quS9HgjQpdaXOvsZz82Oz7uxtXiy6UIsIQcpBj7HRw2M63Skasm9qlDocAM7jNuaxdhpPU7c4kJN+gA5MCu4ww==", + "dependencies": { + "cheerio-select": "^2.1.0", + "dom-serializer": "^2.0.0", + "domhandler": "^5.0.3", + "domutils": "^3.1.0", + "encoding-sniffer": "^0.2.0", + "htmlparser2": "^9.1.0", + "parse5": "^7.1.2", + "parse5-htmlparser2-tree-adapter": "^7.0.0", + "parse5-parser-stream": "^7.1.2", + "undici": "^6.19.5", + "whatwg-mimetype": "^4.0.0" + }, + "engines": { + "node": ">=18.17" + }, + "funding": { + "url": "https://github.com/cheeriojs/cheerio?sponsor=1" + } + }, + "node_modules/cheerio-select": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz", + "integrity": "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==", + "dependencies": { + "boolbase": "^1.0.0", + "css-select": "^5.1.0", + "css-what": "^6.1.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/cheerio/node_modules/undici": { + "version": "6.19.8", + "resolved": "https://registry.npmjs.org/undici/-/undici-6.19.8.tgz", + "integrity": "sha512-U8uCCl2x9TK3WANvmBavymRzxbfFYG+tAu+fgx3zxQy3qdagQqBLwJVrdyO1TBfUXvfKveMKJZhpvUYoOjM+4g==", + "engines": { + "node": ">=18.17" + } + }, "node_modules/clone-response": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz", @@ -1990,6 +2047,15 @@ "node": ">= 0.6" } }, + "node_modules/cross-fetch": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-4.0.0.tgz", + "integrity": "sha512-e4a5N8lVvuLgAWgnCrLr2PP0YyDOTHa9H/Rj54dirp61qXnNq46m82bRhNqIA5VccJtWBvPTFRV3TtvHUKPB1g==", + "dev": true, + "dependencies": { + "node-fetch": "^2.6.12" + } + }, "node_modules/cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", @@ -2004,6 +2070,32 @@ "node": ">= 8" } }, + "node_modules/css-select": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", + "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, "node_modules/debug": { "version": "4.3.6", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.6.tgz", @@ -2096,6 +2188,80 @@ "url": "https://github.com/discordjs/discord.js?sponsor" } }, + "node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ] + }, + "node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", + "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/dotenv": { + "version": "16.4.5", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz", + "integrity": "sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, + "node_modules/encoding-sniffer": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/encoding-sniffer/-/encoding-sniffer-0.2.0.tgz", + "integrity": "sha512-ju7Wq1kg04I3HtiYIOrUrdfdDvkyO9s5XM8QAj/bN61Yo/Vb4vgJxy5vi4Yxk01gWHbrofpPtpxM8bKger9jhg==", + "dependencies": { + "iconv-lite": "^0.6.3", + "whatwg-encoding": "^3.1.1" + }, + "funding": { + "url": "https://github.com/fb55/encoding-sniffer?sponsor=1" + } + }, "node_modules/end-of-stream": { "version": "1.4.4", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", @@ -2105,6 +2271,17 @@ "once": "^1.4.0" } }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, "node_modules/esbuild": { "version": "0.21.5", "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", @@ -2399,6 +2576,24 @@ "url": "https://github.com/sindresorhus/got?sponsor=1" } }, + "node_modules/htmlparser2": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-9.1.0.tgz", + "integrity": "sha512-5zfg6mHUoaer/97TxnGpxmbR7zJtPwIYFMZ/H5ucTlPZhKvtum05yiPK3Mgai3a0DyVxv7qYqoweaEd2nrYQzQ==", + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.1.0", + "entities": "^4.5.0" + } + }, "node_modules/http-cache-semantics": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", @@ -2427,6 +2622,17 @@ "node": ">=16.17.0" } }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/ieee754": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", @@ -2696,6 +2902,26 @@ "dev": true, "optional": true }, + "node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "dev": true, + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, "node_modules/node-gyp-build": { "version": "4.8.2", "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.2.tgz", @@ -2747,6 +2973,17 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", @@ -2823,6 +3060,40 @@ "node": ">=4" } }, + "node_modules/parse5": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", + "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", + "dependencies": { + "entities": "^4.4.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parse5-htmlparser2-tree-adapter": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.0.0.tgz", + "integrity": "sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==", + "dependencies": { + "domhandler": "^5.0.2", + "parse5": "^7.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parse5-parser-stream": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/parse5-parser-stream/-/parse5-parser-stream-7.1.2.tgz", + "integrity": "sha512-JyeQc9iwFLn5TbvvqACIF/VXG6abODeB3Fwmv/TGdLk2LfbWkaySGY72at4+Ty7EkPZj854u4CrICqNk2qIbow==", + "dependencies": { + "parse5": "^7.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, "node_modules/path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", @@ -2933,6 +3204,21 @@ "node": "^10 || ^12 || >=14" } }, + "node_modules/prettier": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.3.tgz", + "integrity": "sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==", + "dev": true, + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, "node_modules/pseudomap": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", @@ -3117,6 +3403,11 @@ } ] }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, "node_modules/semver": { "version": "7.6.3", "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", @@ -3389,6 +3680,12 @@ "url": "https://github.com/sponsors/Borewit" } }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "dev": true + }, "node_modules/trim-repeated": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/trim-repeated/-/trim-repeated-2.0.0.tgz", @@ -3589,6 +3886,56 @@ } } }, + "node_modules/vitest-fetch-mock": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/vitest-fetch-mock/-/vitest-fetch-mock-0.3.0.tgz", + "integrity": "sha512-g6upWcL8/32fXL43/5f4VHcocuwQIi9Fj5othcK9gPO8XqSEGtnIZdenr2IaipDr61ReRFt+vaOEgo8jiUUX5w==", + "dev": true, + "dependencies": { + "cross-fetch": "^4.0.0" + }, + "engines": { + "node": ">=14.14.0" + }, + "peerDependencies": { + "vitest": ">=2.0.0" + } + }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "dev": true + }, + "node_modules/whatwg-encoding": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz", + "integrity": "sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==", + "dependencies": { + "iconv-lite": "0.6.3" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/whatwg-mimetype": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz", + "integrity": "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==", + "engines": { + "node": ">=18" + } + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dev": true, + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", diff --git a/package.json b/package.json index 68a0ef3..e8ce8c6 100644 --- a/package.json +++ b/package.json @@ -10,12 +10,16 @@ "author": "", "license": "ISC", "dependencies": { - "discord.js": "^14.15.3" + "cheerio": "^1.0.0", + "discord.js": "^14.15.3", + "dotenv": "^16.4.5" }, "devDependencies": { "@swc-node/register": "^1.10.9", "@swc/cli": "^0.4.0", "@swc/core": "^1.7.22", - "vitest": "^2.0.5" + "prettier": "^3.3.3", + "vitest": "^2.0.5", + "vitest-fetch-mock": "^0.3.0" } } diff --git a/src/book-sources/BookInfo.ts b/src/book-sources/BookInfo.ts new file mode 100644 index 0000000..1ab4ed7 --- /dev/null +++ b/src/book-sources/BookInfo.ts @@ -0,0 +1,16 @@ +export type BookInfo = { + id: string; + title: string; + author: string; + description: string; + source: string; + url: string; + // TODO isbn etc... +}; + +export type BookInfoShort = { + title: string; + author: string; + id: string; + source: string; +}; diff --git a/src/book-sources/BookSource.ts b/src/book-sources/BookSource.ts new file mode 100644 index 0000000..854e307 --- /dev/null +++ b/src/book-sources/BookSource.ts @@ -0,0 +1,6 @@ +import { BookInfo, BookInfoShort } from "./BookInfo"; + +export type BookSource = { + search(title: string): Promise; + getBook(id: string): Promise; +}; diff --git a/src/book-sources/goodreads/goodreads.test.ts b/src/book-sources/goodreads/goodreads.test.ts new file mode 100644 index 0000000..db7fb14 --- /dev/null +++ b/src/book-sources/goodreads/goodreads.test.ts @@ -0,0 +1,67 @@ +import { describe, it, expect, beforeEach, vi } from "vitest"; +import goodreads from "./index"; +import createFetchMock from "vitest-fetch-mock"; +import * as fs from "node:fs"; + +const fetchMocker = createFetchMock(vi); +fetchMocker.enableMocks(); + +// I don't want to hit the site every time the tests run +const searchPage = fs.readFileSync(`${__dirname}/test/search.html`, "utf8"); +const bookPage = fs.readFileSync(`${__dirname}/test/book.html`, "utf8"); + +describe("goodreads", () => { + beforeEach(async () => { + fetchMocker.mockIf( + "https://www.goodreads.com/search?query=democracy%20the%20god%20that%20failed", + searchPage, + ); + + fetchMocker.mockIf("https://www.goodreads.com/book/show/980031", bookPage); + }); + + it("searches for a book", async () => { + const bookResults = await goodreads.search("democracy the god that failed"); + expect(bookResults).toMatchInlineSnapshot(` + [ + { + "author": "Hans-Hermann Hoppe", + "id": "980031", + "source": "goodreads", + "title": "Democracy: The God That Failed", + }, + { + "author": "Krishnan Nayar", + "id": "123061378", + "source": "goodreads", + "title": "Liberal Capitalist Democracy: The God That Failed", + }, + { + "author": "Hephaestus Books", + "id": "12889008", + "source": "goodreads", + "title": "Articles on Books about Democracy, Including: Democracy in America, Democracy: The God That Failed, Deterring Democracy, the Coming Victory of Democracy, of Grunge and Government: Let's Fix This Broken Democracy", + }, + { + "author": "unknown author", + "id": "207661975", + "source": "goodreads", + "title": "Democracy-The God That Failed: The Economics and Politics of Monarchy, Democracy, and Natural Order (Perspectives on Democratic Practice) by Hans-Hermann Hoppe(2001-07-30)", + }, + ] + `); + }); + + it(`Gets a book's info`, async () => { + const info = await goodreads.getBook("980031"); + expect(info).toMatchInlineSnapshot(` + { + "author": "Hans-Hermann Hoppe", + "description": "The core of this book is a systematic treatment of the historic transformation of the West from monarchy to democracy. Revisionist in nature, it reaches the conclusion that monarchy is a lesser evil than democracy, but outlines deficiencies in both. Its methodology is axiomatic-deductive, allowing the writer to derive economic and sociological theorems, and then apply them to interpret historical events.A compelling chapter on time preference describes the progress of civilization as lowering time preferences as capital structure is built, and explains how the interaction between people can lower time all around, with interesting parallels to the Ricardian Law of Association. By focusing on this transformation, the author is able to interpret many historical phenomena, such as rising levels of crime, degeneration of standards of conduct and morality, and the growth of the mega-state. In underscoring the deficiencies of both monarchy and democracy, the author demonstrates how these systems are both inferior to a natural order based on private-property.Hoppe deconstructs the classical liberal belief in the possibility of limited government and calls for an alignment of conservatism and libertarianism as natural allies with common goals. He defends the proper role of the production of defense as undertaken by insurance companies on a free market, and describes the emergence of private law among competing insurers.Having established a natural order as superior on utilitarian grounds, the author goes on to assess the prospects for achieving a natural order. Informed by his analysis of the deficiencies of social democracy, and armed with the social theory of legitimation, he forsees secession as the likely future of the US and Europe, resulting in a multitude of region and city-states. This book complements the author's previous work defending the ethics of private property and natural order. Democracy - The God that Failed will be of interest to scholars and students of history, political economy, and political philosophy.", + "id": "980031", + "source": "goodreads", + "title": "Democracy: The God That Failed", + } + `); + }); +}); diff --git a/src/book-sources/goodreads/index.ts b/src/book-sources/goodreads/index.ts new file mode 100644 index 0000000..1d1748f --- /dev/null +++ b/src/book-sources/goodreads/index.ts @@ -0,0 +1,75 @@ +import { BookSource } from "../BookSource"; +import { BookInfo, BookInfoShort } from "../BookInfo"; +import * as cheerio from "cheerio"; +import { UserError } from "../../core/UserError"; + +const searchUrl = (query: string) => + `https://www.goodreads.com/search?&query=${encodeURIComponent(query)}`; +const bookUrl = (id: string) => + `https://www.goodreads.com/book/show/${encodeURIComponent(id)}`; + +const search = async (title: string): Promise => { + try { + const url = searchUrl(title); + const response = await fetch(url); + + if (!response.ok) { + console.log( + `Failed to search goodreads: ${response.statusText} (${response.status})`, + ); + console.log(`url: ${url}`); + throw new Error("Http request failed"); + } + + const $ = cheerio.load(await response.text()); + + const resultElements = $(`tr[itemtype="http://schema.org/Book"]`).toArray(); + return resultElements.map((element) => ({ + title: $(element).find(".bookTitle").text().trim(), + author: $(element).find(".authorName").text().trim(), + id: $(element).find(".u-anchorTarget").attr("id").trim(), + source: "goodreads", + })); + } catch (error) { + console.log(error); + throw new UserError("Failed to search goodreads for book"); + } +}; + +const getBook = async (id: string): Promise => { + try { + const url = bookUrl(id); + const response = await fetch(url); + + if (!response.ok) { + console.log( + `Failed to search goodreads: ${response.statusText} (${response.status})`, + ); + console.log(`url: ${url}`); + throw new Error("Http request failed"); + } + + const $ = cheerio.load(await response.text()); + + const data = JSON.parse($(`script[type="application/ld+json"]`).text()); + + return { + title: data.name.trim(), + author: data.author[0].name.trim(), + description: $(".BookPageMetadataSection__description").text().trim(), + id, + source: "goodreads", + url, + }; + } catch (error) { + console.log(error); + throw new UserError("Failed to search goodreads for book"); + } +}; + +const goodreads: BookSource = { + search, + getBook, +}; + +export default goodreads; diff --git a/src/book-sources/goodreads/test/book.html b/src/book-sources/goodreads/test/book.html new file mode 100644 index 0000000..4ae6c6b --- /dev/null +++ b/src/book-sources/goodreads/test/book.html @@ -0,0 +1,23 @@ +Democracy: The God That Failed by Hans-Hermann Hoppe | Goodreads
Jump to ratings and reviews
Rate this book

Democracy: The God That Failed

Rate this book
The core of this book is a systematic treatment of the historic transformation of the West from monarchy to democracy. Revisionist in nature, it reaches the conclusion that monarchy is a lesser evil than democracy, but outlines deficiencies in both. Its methodology is axiomatic-deductive, allowing the writer to derive economic and sociological theorems, and then apply them to interpret historical events.

A compelling chapter on time preference describes the progress of civilization as lowering time preferences as capital structure is built, and explains how the interaction between people can lower time all around, with interesting parallels to the Ricardian Law of Association. By focusing on this transformation, the author is able to interpret many historical phenomena, such as rising levels of crime, degeneration of standards of conduct and morality, and the growth of the mega-state. In underscoring the deficiencies of both monarchy and democracy, the author demonstrates how these systems are both inferior to a natural order based on private-property.

Hoppe deconstructs the classical liberal belief in the possibility of limited government and calls for an alignment of conservatism and libertarianism as natural allies with common goals. He defends the proper role of the production of defense as undertaken by insurance companies on a free market, and describes the emergence of private law among competing insurers.

Having established a natural order as superior on utilitarian grounds, the author goes on to assess the prospects for achieving a natural order. Informed by his analysis of the deficiencies of social democracy, and armed with the social theory of legitimation, he forsees secession as the likely future of the US and Europe, resulting in a multitude of region and city-states. This book complements the author's previous work defending the ethics of private property and natural order. Democracy - The God that Failed will be of interest to scholars and students of history, political economy, and political philosophy.

304 pages, Paperback

First published January 1, 2001

Loading interface...
Loading interface...

About the author

Hans-Hermann Hoppe

102 books501 followers

Ratings & Reviews

What do you think?
Rate this book

Friends & Following

Create a free account to discover what your friends think of this book!

Community Reviews

5 stars
1,082 (50%)
4 stars
618 (28%)
3 stars
275 (12%)
2 stars
89 (4%)
1 star
86 (4%)
Displaying 1 - 30 of 190 reviews
Profile Image for Jason.
52 reviews17 followers
February 10, 2014
Hoppe's argument is essentially a well-executed follow through of Etienne de la Boetie's call to "support [the tyrant] no longer; then you will behold him, like a great Colossus whose pedestal has been pulled away, fall of his own weight and break in pieces." Hoppe does an excellent job extending this line of logic into the modern democratic era. In doing so, he rightfully understands that the institution of the state functions as a monopolist over a territorial region. Consequently, Hoppe observes that governments inherently will trend toward increased exploitation of property while diminishing the quality of goods and services that it offers (law, defense, policing, etc.). Hoppe's truly unique observation to me is his analysis of how democratic governments(which include any form of representative government) make this problem much worse. Since elected officials in representative governments are only temporary caretakers of the economic resources of government, their incentive is to waste more resources in the present and rack up significant long-term debt.

In other words, a democratic state, according to Hoppe, speeds up its inevitable destruction and insolvency due to the incentive structure of its elected officials and bureaucratic enforcers to embrace waste. Brilliant.

But Hoppe doesn't stop there. It's not enough to merely recognize the failings and evils of the state. Hoppe advocates for a natural order anarchy that is pioneered by small pockets of individuals who care not for the state's control and seek to live in freedom. He advocates for dozens of competing Hong Kongs and Singapores, with no formal regulations established by any government with the power to tax. As these experiments prove to be far more successful than the wasteful and crumbling modern states that are already in the early stages of their death throes, more and more free cities can help society transition from the failed nation state model to liberty.

One of the most inspiring things I find about Hoppe's writing is that we really don't even need geographically defined free cities to consider if his ideas will be successful. The digital age is already breaking down traditional geographic barriers and allowing us to experiment with competitive free societies that are based in the digital world, but with everyday, real-world application. Projects like Ethereum are the realization of Hoppe's worldview today, despite all of the massive government regulatory agencies and tens of thousands of laws. Freedom cannot ever be stopped.

Hoppe also has a brilliant understanding of why libertarians need to be more conservative and why conservatives need to be more libertarian (which was encouraging to see since I have been thinking the same thing for quite some time).

Although I find Hoppe either difficult to understand and even on some points, unpersuasive (at least based on my current understanding), I am highly impressed by Hoppe's overall defense of voluntary society in the face of democratic states and I look forward to the continuing development of technologies that will allow us to realize the ultimate failure of the nation-state experiment as a means of social organization.
Profile Image for Bernie.
103 reviews26 followers
March 17, 2012
This is the second time that I read “Democracy the God that Failed”, by Hans-Herman Hoppe. The first time I gave it three stars. This time I upped its celestial rating by one star. It is a deep book. For most people it will be contrary to their sensibilities as proud Americans….and contrary to what they have been taught. For it is a critical “Austrian view of an American age”…. That is, it is an Austrian Economics school view of world democratization.

Still, if one carefully looks to the US founders, one will find in their words a very prediction of what has come and is coming to pass as concerns democracy, according to Hoppe. Like Hans-Hermann Hoppe, many founders saw in democracy a catalyst for decivilization. Benjamin Franklin said, “Democracy is two wolves and a lamb voting on what to have for lunch…” John Adams said, “ There never was a democracy that did not commit suicide.” Jefferson said, “A democracy is nothing more than mob rule, where 51% of the people may take away the rights of the other 49.” Madison said “Democracy is the right of the people to choose their own tyrant.” John Marshall said that “Between a balanced Republic and a democracy, the difference is like that between order and chaos.” Patrick Henry said, “It is the duty of the patriot to protect his country from its government.” Franklin also said, “When people find that they can vote themselves money, that will herald the end of the republic.”

And the founders were not the only ones who recognized the depredations of democracy. Oscar Wilde said that, “Democracy means simply the bludgeoning of the people, by the people, for the people. And Karl Marx in a rare moment of accurate insight said, “Democracy is the Road to Socialism.”

Seeing this danger, the founders set up a Republic, informed by the Declaration, and bounded by the Constitution and the Bill of Rights meant to set up a filter between government and democracy and to limit the powers of government. They built a wall against tyranny that thwarted the governments’ drive for increasing power but proved ultimately to be tragically porous. What happened? Through time, government caretakers (elected officials) ignored the Constitution, and finding that being more “responsive” to the people also aligned with their own goals for greater power, began to institute more and more democratic reforms…. More and more programs that benefited the short time horizon of their term of office. More and more programs that set up dangerous dependencies but also assured election and re-election of the patrons. This democratic infusion ignited a process of decivilization which has direct bearing on the current chaotic political situation of the US and the world.

Democratization, according to Hoppe was inevitable, as was that it would result in progressive decivilization-- in contrast to rule by monarchy. How then to account for the remarkable material success of the US and Western society other than recent times? The success has come despite democratization. So does Hoppe call for a return to monarchy? No, because first, monarchy now shattered cannot be reconstituted and second because monarchy, though less destructive than democracy, is also destructive to the natural order of man. And what is, says Hoppe, the natural order of man? It is “ordered anarchy” and other such terms including “private property anarchism,” “private property anarchism,” “anarcho-capitalism,” “private law society,” and “pure capitalism.” It is only in these systems, where territorial monopolists (governments) of all kinds have been abolished that man consistently leans toward greater peaceful prosperity and civilization. Meanwhile, both monarchy and democracy are both parasitic; differing only in that monarchy being a private parasitism is generally less destructive.

*Hoppe makes a convincing case that the shorter time horizons of democracy leads to a chaotic tendency towards decivilization.

* He makes a convincing case that democracy is inevitably redistributive and at enmity with principles of private property.

* He makes a convincing case that private property rights lead to longer time horizons resulting in a steady rise of both prosperity and civilization.

* He correctly points out that while crime results in only intermittent property rights violations, government property rights violations, presented as legitimate, are continual and inevitably increase over time.

* He correctly upholds the importance of the family and of private property in enabling the progress of man, and its undermining to be a primary cause for his degradation.

* He (inaccurately I think) fingers the democracy as the cause of the rise of total war, while ignoring other factors that have greater merit in determining this outcome.

* He calls the US Constitution a “noble experiment” that has failed due to its fatal error of putting temporary and interchangeable caretakers, democratically elected, in charge of a nationwide monopoly of justice and protection. While he brings thought provoking evidence to this charge, I am not convinced that the noble experiment should be abandoned.

So how do we stop and correct the process of decivilization before total chaos results? Hoppe says first and foremost that we must delegitimize the idea of majority rule and inculcate its alternative-- Natural Order-- based on the supreme principle of private property and powered by self determination and self rule. This will set into motion centrifugal forces of decentralization which is more amenable to natural order.

Murkily, he insists that individuals and insurance institutions will be able to take over the traditional government role of protection and that a “secession” of the withdrawal of support for the central government union will ultimately be successful in accomplishing the abolition of government and the establishment of a private law society based on natural order.

As you read “Democracy, the God that Failed” you may have difficulty with the appropriateness of Hoppe’s policy prescriptions, but you will be astounded at the accuracy of his analysis. You will be vigorously prodded to think anew about the efficacy of democracy as a vehicle for the progress of man.
Profile Image for A.
438 reviews41 followers
December 19, 2021
The argument in short:

Democracy destroys time preferences of countries by making their leaders unaccountable for the long-term consequences of their decisions. As a public servant, you only have to worry about one thing: getting re-elected. And how does one get re-elected? Bread and circuses!, welfare and deficit spending! Yippee, it's party time! The problem is that spending everything now means that you have no money for later, so your currency inflates, you go into massive debt, etc. etc.

And why is this not a problem for a monarchy? The thing about a monarchy is that the monarch has ownership rights over his land. Meaning: he treats his country as he would his household. Would you want to throw a massive party in your household, just to ruin it? No. In other words, the monarch treats his country as he would private property, knowing he will pass it on to his progeny and therefore taking care of its long term value. Which means that he will be careful about destroying it via promising bread and circuses today and ending up with barbarians and angry mobs tomorrow.

Another great thing about monarchies is that there is a clear division between ruler (hereditary family) and ruled (the rest), as opposed to democracy where the populace inject the psychological drug that "we rule ourselves". This means that the populace trusts the monarch less and will resist his Octopus arms spreading everywhere, at least more than people do in a democracy.

The above a priori theory is substantiated by the statistics: government employees have multiplied by 10x since the Middle Ages, the government now has debt increasing exponentially instead of paying it off (as happened before ~1800), and tax rates have multiplied by around 10x as well since Medieval times. So everybody's time preference is now shorter and we are destroying ourselves by not saving for our progeny, if we even have progeny in modernity's furor over pleasure. We have massive credit card debt and pay $200,000 for a degree in gender studies.

What is next? Certainly not "progress". What is probably imminent is a collapse of the West, as predicted metaphysically by Spengler and biologically by Dutton and Sarraf et al. Think of the late Western Roman Empire. Think of the West today. See how many comparisons you can make.
Profile Image for Ryan.
1,215 reviews174 followers
October 30, 2017
This book makes the case that 1) democracy, in the sense of mob rule, is a bad social order, as it inevitably leads to socialism 2) monarchy, particularly of the feudal and highly localized/informal model, is superior 3) a theoretical libertarian/anarcho-capitalist social order would be superior to even monarchy. These are pretty shocking conclusions for most Americans today (and westerners in general), but the argument, from some basic and acceptable premises, seems sound -- in particular, the argument for monarchy of the circa 1215 ad English kind being superior to modern "democratic socialism" of the form found in most of the world to varying degrees (including the US).

(I originally heard of Hoppe as "a racist guy who gave intellectual support to the far right", and then later as "someone so extreme as to call Hayek and Mises and Friedman leftists". Eventually, after seeing enough other references (and the popular "Hoppean Snek" series of memes ... the snake from the Gadsden flag crossed with Augusto Pinochet, engaged in "physical removal, so to speak"), I decided to read Hoppe's greatest book. )

I think the case for monarchy or some kind of limited franchise republicanism is well made. The case for anarcho-capitalist utopia seems a bit weaker (essentially, that everything is done by contract, and there are insurance companies with a non-monopoly of force which take a lot of the protective functions of the state). The main weakness of the anarcho-capitalist argument is Hoppe repeatedly says "X is bad", which it is, but it's entirely possible X is less-bad than the alternatives.

Another problem Hoppe finds with "mainstream libertarianism" and modern culture is essentially moral -- he argues that true liberalism/anarcho-capitalist libertarianism must be highly morally upright, and that a wide array of things would be sufficiently injurious to life that they would be banned (not by monopolistic law, but by covenant) -- hence the famous "physical removal" arguments, the proposal that some property could be posted "no beggars, bums, or homeless, but also no homosexuals, drug users, Jews, Moslems, Germans, or Zulus" as an example, etc. I think it's important here to separate out his deliberately provocative "to ban" list, from his idea that private property owners should have the ultimate right to ban anyone for any arbitrary reason. However, he does repeatedly reinforce the value of the traditional heterosexual/nuclear/etc. family and a lot of very conventional beliefs as ultimately best, and I think that's debatable -- it's possible something was never the best, or was the best in a certain setting but not the current setting, etc. -- but I do agree on the fundamental premise of private property owners being unrestricted in their use of property (provided it doesn't interfere with the property rights of others.)

The weakest part of his argument is localized secession as a route to achieving this anarcho-capitalist utopia; as we've seen, this just doesn't happen in the modern world, in that the only people who tend to do so are just as statist as those they're separating from. States also violently suppress any true secession from their system. I'm a firm believer in technology as the only route to achieving any kind of durable and lasting property protection (through computing, cryptography, and at some point, the conquest of new physical frontiers), and I don't think Hoppe has particularly considered that.

The book is very accessible -- it's a collection of 13 essays, each of which can stand alone. There are extensive footnotes, including quotes from other works and references to those works. This probably isn't the ideal introduction to libertarian thought, but it, along with Murray Rothbard, define one extreme.
Profile Image for Shirin.
29 reviews26 followers
March 29, 2023
This is one of those books whose central thesis falls apart if you look at actual history behind its idea, rather than what the author thinks is clearly the rational thing to do.

To wit, Hoppe argues that monarchy was better than democracy because hereditary monarchs had more of an incentive to keep down debt and expenses, because they’re going to pass the kingdom down to their heirs. That certainly sounds like it would be an entirely sensible thing for monarchs to do. Unfortunately, looking at the actual history of monarchy doesn’t particularly support the idea. The actual history of monarchy is replete with warmongers and spendthrifts who bled their treasuries dry to fund wars against some territory they desperately wanted to rule over. Just to look at medieval England alone, Edward I, Edward III, and Henry V left their heirs settled with a lot of debt and aggressive wars of conquest that they couldn’t possibly win. The Scottish War of Independence and Hundred Years’ War provided few tangible benefits to the English burghers or peasantry (although the aristocracy is another story) and were based on the desires of the aforementioned kings to expand their holdings. Out of the numerous Medieval and Early Modern kings of England and France who can be judged as fiscally prudent at all, we’re limited to a mere handful of candidates: Henry II, Charles V, Henry VII, Louis XI, and Louis XII, of whom whose relatively parsimony was remarked on by contemporaries as something highly unusual.

Hoppe has had the existence of spendthrift kings pointed out to him before another professor of economics, but he dismissed the examples of John of England, Felipe II of Spain, and Louis XV of France in a separate essay as unimportant. What he either ignores or does not understand is that far, from being unusual, most monarchs and nobles acted more like John, Felipe, and Louis than whatever fiscally prudent ideal monarch he imagines. The norms of European aristocratic cultures demanded the nobles and royals eat, dress, and live luxuriously while also being generous to the poor and the church, even if they had to do so on credit. This is precisely why so many contemporaries commented on the stinginess of Henry VII and Louis XI: being kings while not wearing the finest velvet and silk clothing, eating large banquets, and spending millions on failed military campaigns was so beyond the norm. For someone who is obsessed with the norms of racial and cultural behavior, he never stops to consider if perhaps there was a reason why there are so many more stories of aristocratic men like Humbert II of Viennois, Edward de Vere, George IV of Great Britain, or Garech Browne. Perhaps if he read more of cultural history or sociology, he might realize that things like thrift and planning for the future (part of what he dubs high time preference and farsightedness) were and are middle-class values, which the upper class had little use for.

Hoppe is, however, at his most mendacious when he discusses war:

“As violent inheritance disputes, monarchical wars are characterized by limited territorial objectives. They are not ideologically motivated quarrels but disputes over tangible properties. Moreover, as inter-dynastic property disputes, the public considers war essentially the king’s private affair to be paid for by himself and as insufficient reason for any further tax increase.”


That would come as a huge surprise to the English and French peasantry and burghers who were repeatedly levied with taxes to fund the Hundred Years’ War, which they did not always appreciate. Indeed, the Jacquerie in France arose after Jean II of France was taken prisoner at the Battle of Poitiers and it became clear the English we’re going to demand a huge ransom to free him and English peasants’ rebellion of 1381 was set off after two poll taxes were levied on the populace to finance the war against France.

Hoppe would also have us believe that “‘collateral damage’ become part of war strategy” only became a part of military strategy under democracies, suggesting he’s never heard of the medieval chevauchée, a more polite way of saying, “Rape, pillage, and burn.” The existence of the chevauchée and its extensive use during the Hundred Years’ War also gives lie to Hoppe’s bogus claim that:

“as private conflicts between different ruling families the public expects, and the kings feel compelled, to recognize a clear distinction between combatants and non-combatants and to target their war efforts specifically and exclusively against each other and their respective personal properties.”


Someone needs to tell him about the St. Brice’s Day massacre, Harrying of the North, Massacre at Béziers, Burnt Candlemas, Grand Chevauchée of 1355, Mérindol massacre, Massacre of Novgorod, or St. Bartholomew’s Day massacre and pronto. If monarchs and nobility in the past managed to kill less, it’s only because the world population was smaller and they also lacked the kind of military technology available to 20th century tyrants, rather than moral fastidiousness. For the matter, it’s extremely debatable whether monarchical wars were never ideologically motivated; I’d be interested to hear how one could possibly claim that, say, the Albigensian Crusade, the Hussite Wars, the French Wars of Religion, or the Thirty Years’ War were not ideologically motivated.

On a lighter note, it’s curious that Hoppe’s apparent enthusiasm for “natural” aristocracy (whatever that’s supposed to mean) is that’s radically at odds with his apparent distaste for “sexual deviants.” Historically, aristocracy and libertinism went hand-in-hand, most likely because a legally privileged position gives people the feeling that they have no need to rein in their worst instincts. A deep dive in actual monarchy (rather than what Hoppe imagines it to be) would reveal cadres of self-seeking sycophants around kings, who were routinely demonized as greedy leeches who were single-handedly destroying the country. For example: Edward II’s Piers Gaveston and Hugh le Despenser, Henry VI’s William de la Pole and Edmund Beaufort, or James I’s Esmé Stewart and George Villiers.

To be fair, Hoppe doesn’t think monarchies of the past were flawless, but he fails to explain why his imagined utopia of “natural” aristocracy wouldn’t fall prey to the same pitfalls of the military aristocracies of the past. You might think I’m being dismissive of Hoppe’s ideal of natural aristocracy, but he genuinely never does get around to explaining what he means by that nor does he actually explain how a “natural” aristocracy might be formed. To be certain, past aristocracies were based on talents: the gifts of military command and sycophancy, mostly, as well as having a flair for propaganda, but I gather that’s not the kind of natural aristocracy he imagines. Then again, anarcho-capitalists as whole generally don’t tend to do well when asked to ask to imagine the particulars of how their improved society would function. Oh, well.
233 reviews
December 15, 2009
Mind-blowing. I had wondered what went wrong and when and started to think maybe it was more WWI than the Civil War, then I thought further, where did the founders go wrong? What should they have put in the constitution to forestall the massive growth of the federal government, then concluded, they did all they could. If everyone who had sworn to uphold the constitution had in good faith tried to do so, the founders' dream would have been realized but no. My conclusion? A just government in the end may not be possible, at least under democracy. It may be inevitable that it be corrupted. These premises are discussed, basically, on page 1 of the Intro of this book. And it gets better. A must read. The truth is out there--actually, it's in this book.
19 reviews1 follower
January 18, 2019
This collection of essays is a mixed bag. Hoppe's arguments for the superiority (well, really the less-badness) of monarchy over democracy are startling and persuasive, and he does a good job showing the nonsensical nature of theories of the social contract and the entire concept of democratic representation. His arguments for anarcho-capitalism are less interesting, original and persuasive. Nor is his description of his ideal stateless society based solely on private property and contracts particularly appealing - perhaps he would do better to take a page from Jeffrey Tucker's book and avoid speculation on what a stateless society would look like, since ultimately we can't possibly know except in the unlikely event that one comes into existence. It's also hard to take arguments for a fully voluntary society seriously when they come from someone who believes socialists and other undesirables should be forcibly ejected.

By far the most off-putting aspects of the book, though, are some of Hoppe's cultural arguments, particularly in the essays on immigration. I don't mean that I found his actual position on immigration offensive, since I am still more or less on the fence (pun not intended) where that issue is concerned. The problem is that Hoppe goes overboard in his critique of multiculturalism - instead he operates on the assumption that different ethnic and cultural groups cannot possibly live together in harmony (though he acknowledges that they may collaborate from a distance). At times he also implies, though to my memory never states explicitly, that he subscribes to theories of scientific racism. In general he is a bit of a nasty elitist.
Profile Image for Pablo.
67 reviews
February 26, 2020
I read how democracies die then saw this book and decided to give it a go...

When it arrived I saw who the publisher was and realized my mistake. But anyway, I gave it a go...

Oh boy... The first thing I would like to point out is that the author like footnotes and is completely ok even if they span over more than half a page... The definition of footnote makes no sense for the author.

Contentwise, lots of repetitions, weak arguments and "unquestionable" truths that, in my opinion are pathetic. The author has a point when he argues that a monarch thinks differently than a president, preferring long term implications. Other than that, lots of thoughts based on little evidence and strong prejudice. Insurance companies should "rule" the new, government free world... Poor people are worse than rich people... and other nonsense ideas are all over the place.

I wonder if the author know how reality works or if he lived all his life in the first world bubble. I would like to introduce him to Milicias from Rio de Janeiro... They resemble a lot the private companies he suggests to provide people's security...
Profile Image for Jassimhosfoor.
134 reviews18 followers
February 17, 2021
كتاب الديمقراطية الإله الذي فشل المؤلف هانز هيرمان هوبا.
يتحدث هوبا عن الديمقراطية والملكية والنظام الطبيعي في كتابه هذا بشكل مفصل، لا فرق لديه بين النظام الجمهوري والملكية الدستورية من حيث تأثيرها وممارستها، إذ النظامين تحركهما الديمقراطية المستندة لكل فرد صوت، وإذ يذهب بعيدا في هذا الموضوع من خلال مسألة (التفضيل الزمني)، و(الملكية العامة والملكية الخاصة)، إذ يكون فيمها الفرق في أسس أنظمة الحكم الموجودة، وأما عن النظام الطبيعي من خلال وجود الصفوة من الناس وبمصطلحنا (الوجهاء) وبحسب وصفه (إن اجتماع الامتيازات الفائقة للثروة والحكمة والشجاعة أو لمزيج منها يمنح بعض الأفراد "سلطة طبيعية"، وتحظى آراؤهم وأحكامهم باحترام واسع النطاق).

موضوع الملكية الخاصة (النظام الملكي) وليس الملكية الدستورية إذ الملكية الدستورية وضعها في صف النظام الجمهوري الديمقراطي والملكية العامة (النظام الديمقراطي)، والتفضيل الزمني.

هنا يرى كل ما كانت ملكية خاصة كل ما كان التفضيل الزمني منخفض وكان النظر للمكاسب بشكل بعيد زمنيا وكل ما كانت ملكية عامة أصبح التفضيل الزمني مرتفعا إذ تصبح المكاسب آنية، وفي مقلب آخر الملكية الخاصة ستحافظ على مكتسباتها ومكتسبات أجيالها القادمة بعكس الملكية العامة (الديمقراطية) التي لا تملك أصول الملكية ولكن لديها تخويل بإدارة الملكية العامة مما يجعل التفضيل الزمني مرتفعا والمكاسب آنية.

هوبا يرجع ازدياد الجرائم وتفكك الأسرة والمشاكل الأخلاقية التي ارتفعت مع انتشار الديمقراطية، والتي جائت بعد الحرب العالمية الأولى، وسبب انتشارها هو النظام الأمريكي (الديمقراطي) الذي انتصر في الحربين العالمية الأولى والثانية وبسببه انحسرت الأنظمة الملكية في أوروبا والعالم، ومن هنا انطلقت الحريات في كل شي وخصوصا الحرية الفردية وتسلط الديمقراطية على الشعوب بقوانينها الكثيرة والحادة من الملكية الخاصة للأفراد سواء عبر القوانين أو الضرائب والتي ترتفع مع تقدم السنوات.
وبهذا الخصوص حسب رأي هوبا أن الديمقراطية (الملكية العامة) فتحت المجال ل��ي شخص بإدارتها وبمعنى أدق أن يكون حاكما مهما كان هذا الحاكم ومهما كانت ميوله، ولفترة محددة وبشكل أوضح سيكون لديه التفضيل الزمني مرتفعا.

هناك العديد من النقاط التي تطرق لها المؤلف، ومنها نظام الحماية الذاتية أو الدولتية (الدولة) يربطها بموضوع الضرائب ومدى الحماية التي يتم توفيرها، والتفضيل بينها وبين الحماية عبر شركات التأمين، وأن النظام الديمقراطي كل ما رفع منسوب الحماية فستكون من جيوب دافعي الضرائب.

اقتباسات:
ففي إدارة ويلسون أصبحت الحرب الأوربية مهمة أيديولوجية تسعى لجعل العالم ملاذاً آمناً لممارسة الديمقراطية وخالياً من الأسر الحاكمة.

لم يمثل انهيار الإمبراطورية السوفيتية انتصاراً للديمقراطية بقدر ماكان إفلاساً لفكرة الاشتراكية، وهو بذلك يوجه اتهاماً مباشراً لنظام الديمقراطية الأمريكي (الغربي) بدلاً من الاشتراكية الديكتاتورية.

لقد كانت النمسا في ظل هابسبورغ وعصر ما قبل الديمقراطية دولة أكثر جاذبية.

لا تنسجم الديمقراطية (حكم الأغلبية) مع الملكية الخاصة (الامتلاك والحكم الفردي)

الانتقال من الملكية إلى الديمقراطية نوع من التدهور الحضاري.

إن الاختيار بين الملكية والديمقراطية يتعلق بالاختيار بين نظامين اجتماعيين معيبين.

إن العلامة المميزة لانتهاكات الحكومة لحقوق الملكية الخاصة هي أنها، على خلاف الأنشطة الإجرامية، تعتبر شرعية ليس فقط من قبل وكلاء الحكومة القائمين عليها، بل من قبل عامة الشعب أيضاً (وحتى من قبل الضحية نفسها أحياناً). ومن ثم، في مثل هذه الحالات، قد لا تدافع الضحية قانونياً عن نفسها ضد هذه الانتهاكات.

كان الجشع والحذر هما من جعل الحرب أكثر إنسانية... أصبحت الحرب لعبة بين الملوك. لعبة لها قواعدها ورهاناتها - أرض، وميراث، وعرش، ومعاهدة؛ والخاسر يدفع الثمن ولكن بمقدار عادل يقع دائما بين قيمة الرهان والمخاطر التي يجب خوضها، وكانت الأطراف على أهبة الاستعداد دائما لهذا النوع من الرهان.

في حين تميل الحروب الديمقراطية لأن تكون حروبا شاملة.

يجب اعتبار القرن العشرين، عصر الديمقراطية، من بين أكثر الفترات دموية في التاريخ.

ما يجب أن يكون واضحاً الآن هو أن معظم، إن لم يكن كل التدهور الأخلاقي والعفن الثقافي من حولنا - علامات تدهور الحضارة - هو من النتائج التي لا مفر منها والتي لا يمكن تجنبها لدولة الرفاهية ومؤسساتها الأساسية.

إن حالة الانحطاط الأخلاقي والتفكك الاجتماعي والعفن الثقافي هي على وجه التحديد نتيجة التسامح الخاطئ والمضلل.

سوف يتضح على ما يبدو أن الأمن الجماعي ليس أفضل أنماط الأمن الخاص للأفراد، بل للدولة..

إن وجود الدول - وخاصة الدول الديمقراطية - يعني ضمناً أن حرب العدوان والدفاع - سوف تتحول إلى حرب شاملة بلا تمييز.



Profile Image for عمر الحمادي.
Author 7 books683 followers
December 7, 2019
عنوان الكتاب وبعض أفكاره صادمة، أبان فيه المؤلف ثغرات الأنظمة الديمقراطية مع الاعتراف بأفضال الأنظمة الملكية... وهذا طرح غريب على الفكر الأوروبي... في المجمل لم يعجبني الكتاب وكنت أتوق إلى رميه جانباً... ربما بسبب الاسلوب الجاف والرتيب أو بسبب عدم وضوح الرؤية والمقصد.

الفرد هو من يحدد معدل تفضيله الزمني time preference، فالطفل له مع معدل زمني عالي يعيش فيه حياته يوماً بيوم ومن إشباع لآخر، ثم ينخفض التفضيل الزمني مع تقدم العمر والبلوغ حيث ينشط الادخار والاستثمار وتطول فترات الإنتاج والتوفير.

بالنسبة للفرد البالغ، فإن تفضيله الزمني يتحدد وفقاً لتقييمه الشخصي، فقد يكون أشبه بطفل لا همّ له سوى الإشباع الفوري لرغباته، وقد يعيش تائهاً أو مدمناً أو حالماً وهو يمارس أقل قدر من العمل من أجل أن يستمتع بكل يوم من حياته، على النقيض منه يوجد شخص دائم القلق حيال مستقبله وعائلته ويرغب بالادخار وبناء مخزون من المال والسلع الاستهلاكي�� المُعمرة، وهناك نمط ثالث يعيش بين الطفل والقلق يشعر بحالات مختلفة ويعيش اساليب حياة مختلفة بحسب ظروفه.
Profile Image for المجتبى الوائلي.
Author 8 books69 followers
April 13, 2022
ربما يعد هوبا أشجع من كتب في مجال نقد النظم الديمقراطية، والأكثر جرأة بين من اقترحوا وأسسوا لنظم اجتماعية بديلة للدولة والدولتية.

استصعبت في بادئ الأمر فكرة التخلص نهائيا من الحكومة ولم أستوعب تماما كيف يمكن لمجتمع استبدال المؤسسات الأمنية والقضائية الحكومية بأخرى خاصة، ولكن بعد الكثير من الشرح والتفصيل، بات الانتقال لمثل هذه الأنظمة ممكنا فيما لو حدث بالتدريج، بل وجذابا.

تخيل عالما لا حكومات تحكمه، بل مؤسسات خاصة تقدم خدماتها مقابل مبالغ مالية وحسب الحاجة، شركات تأمين للحماية والتحكيم وغيرها.

ما يعيب الكتاب كثرة الاسهاب، إذ وجدته كثيرا ما يكرر ذات الأفكار بلا داعي. كما وغابت السلاسة في الترجمة.

كتاب لا بد أن يُقرأ.
Profile Image for Jacob Aitken.
1,637 reviews359 followers
October 13, 2017
While I only agree with half of the book, I give it five stars for brilliance. In the first half, Hoppe argues that democracies introduce elements of decivilization and ultimately pave the way for barbarism. He documents how countries actually became poorer when they moved from monarchies to democracies.



His most interesting point is his thesis that World War 1 marked the end of civiliation. He is correct.



To the reviewer that said Hoppe argues for constitutional monarchies over democracies, taht is incorrect. Hoppe says monarchies are bad, too. They just preserve liberty longer than democracies.
Profile Image for cool breeze.
373 reviews21 followers
February 20, 2022
Hans-Hermann Hoppe is a right-libertarian anarcho-capitalist. Intellectually, he is a descendant of Murray Rothbard, who was himself a descendant of Ludwig von Mises. This is a 2001 collection of his writings. As such, there is considerable repetition, as the same points are made again and again, often in the same words, in different essays, especially the first two chapters.

Hoppe’s thoughts on time preference are clearly and persuasively presented. Some of his other thoughts will surprise or shock readers, such as his well-argued case that monarchy is in many ways superior to democracy. He eventually discards both. Unfortunately, Hoppe thinks a better alternative would be rule by the “elites” in society. This is utter and dangerous garbage. If there is one thing that the 21 years since the publication of this book has proved, it is that the “elites” (left and right) are appallingly bad at government – smug, tyrannical, incompetent, out of touch and corrupt. William F. Buckley was right when he said in 1961, "I would rather be governed by the first 2,000 people in the telephone directory than by the Harvard University faculty". Over the ensuing 60+ years, the elites have resoundingly proven they should not be sought, but rather disqualified and excluded.

On a more positive note, Hoppe’s ideas about the private provision of defense and security needs (military, police and courts) are intriguing. And his ideas about discrimination, “civil rights” and morality will make “woke” heads explode, which is always fun.

The quality of the material is so uneven that it is difficult to give the book a single rating. My rough breakdown is:

Quality of the “big ideas” – mostly 4-5 stars, with a few exceptions.

Quality of the thinking about how to practically implement the big ideas – 1-3 stars, mostly wildly impractical.

Editing/organization/focus/formatting – 1 star. There is way too much repetition, and this is one of the worst formatted ebooks I have ever read.

Overall, I would rate it 3.5 stars. I am rounding up to 4 stars because the thought-provoking big ideas are what are most important in a book such as this.
46 reviews7 followers
June 28, 2009
Expectedly, Hoppe does not hold back views that may rub people the wrong way. If you are capable of looking past your first emotional reaction to his words, you will see that there is a logical consistency that he is arguing. He is also not saying unpopular things just for the wow factor. Rather, he tries to systematically take ethical and economic truths to their logical conclusions.

This book is a collection of essays that have been published individually before. They are put together at 13 different chapters. Although you could read the book out of order, I felt that the order of the chapters was thoughtful with the earlier ones laying out some basics. There is some repetition between chapters, but not overly so. The work is footnoted throughout showing the author's familiarity with philosophy, economics, and history.

Although his argumentation is usually consistent and convincing, I was not entirely convinced or happy with every chapter. The main hiccups I had were on his chapter on Immigration and Free Trade, as well as his chapter on conservatism/libertarianism. For the former, I found his arguments inconsistent. In the latter, I just didn't find the arguments convincing, although I can't find a particular flaw in the argumentation.

Overall, this is a book that makes you think and may even change your mind on a thing or two. I should note that this book is dense and, for me, a relatively slow read.
Profile Image for Trey Smith.
82 reviews12 followers
March 4, 2016
Hoppe's Democracy-The God that Failed is a must read for any serious student of political philosophy. Hoppe's analysis of monarchy as private government ownership yielding longer time preference than democracy as public ownership of government proves the decline of civilization that is also evidenced by increased government waste, increased positive law, increased in war, and moral decay post WWI. Such an analysis further turns the classical liberal idea of limited government on its head in favor of a truly conservative and libertarian governance based solely on private property rights. Such governance warrants no monopolistic state in regards to defense of private property rights. Hoppe logically lays out solutions for private defense contrary to the state and further provides the answer to de democratization with the right of secession. Hoppe presents his case with flawless and undeniable logic continuing the great legacy of such men as Ludwig von Mises and Murray Rothbard. I highly recommend this book.
19 reviews11 followers
December 19, 2014
Highly thought provoking. Not an easy read, very chewy ideas that require a fair bit of time to digest and sink in.

Probably not a beginner read if you're not already accustomed to some of the ideas of liberty but HHH offers compelling and not easily refutable arguments in defense of his ultimate argument that, contrary to popular opinion, democracy leads to a degradation of society and is not actually an improvement to the old monarchical systems of the past.

Ultimately, however, he argues the best form of government is no government and concludes his book with a couple treatises on how private defense would work vs the government monopoly system in place currently.

Highly recommend if you're into well researched, logical, fact based advancement of liberty ideas.
4 reviews
August 6, 2022
Awful book. The authors starts by prefacing his work by devaluing empirical based hypothesis formulation (science as a we know it) and states that all his work is literally make believe (rationalism). Immediately evident are his lack of references. This man is an elitist racist eugenicist at heart I am certain: a quack anaracho capitalist who understands nothing about the real world and lives in a fake world where private property protection is the answer to all of the world's problems. I could only reach half way before dropping this deluded work.
Profile Image for Jeff.
12 reviews
November 5, 2009
Democracy is often considered the best political system among the alternatives. Though he does not endorse either system, Hoppe argues that between the two, monarchy has many advantages, not the least of which include greater individual liberty and prosperity. He makes a convincing case.
Profile Image for Daniel Moss.
171 reviews8 followers
August 20, 2016
So eyeopening. I love the use of economic theory to develop political theory, and to top it off, the use of empiricism to show how this political theory is in fact what has happened in the last 100 years.
Profile Image for Naser Sami.
12 reviews5 followers
May 14, 2022
الديمقراطية: الإله الّذي فشل
هانز هيرمان هوبا
منشورات تكوين
___
الكتاب المحيّر، الّذي يشدّك لذكائه، وينفّرك ويستفزك بفكر مؤلّفه.
مداره إثبات فشل الديمقراطية كوسيلة حكم وتناقضها وإضرارها بأخلاقيّات واقتصاد وفكر المجتمع، والأهمّ عند المؤلّف تناقضها مع الملكيّة الخاصّة وتهديدها المحدق لها.
وهنا لا يدافع الكاتب عن الأوتوقراطيّة والدولة البوليسيّة كما قد يبدو من السطح، بل هو مدافع عن الأناركيّة -اللاسلطويّة- ويرى أنّها الوسيلة المثلى لحفظ الملكيّات الخاصة والحرّيّات الفرديّة.

في بداية الكتاب يضعنا المؤلّف أمام معيار لطيف لن يفارق عقلك -على الأقل بعد شهور من قراءة الكتاب- وستسقطه على كافّة خياراتك في الحياة (ماليّةً أو اجتماعيّة). وهو معيار التفضيل الزمني. (تفضيل المرء القيام بشيء أو كسب شيء أو متعة في وقت معيّن، فلو ارتفع التفضيل الزمنيّ زادت رغبتك في تحقّق الأمر فوراً أو في أسرع وقت، وإذا انخفض التفضيل الزمنيّ فأنت تؤجّل نيل المكسب لوقت لاحق، وعليه سيزداد المكسب مع مرور الوقت. فمثلا إن استثمرت مبلغاً في التجارة وكان أمامك خياران: جني الربح يعد شهر وتكون ربحت ٥٠% من قيمة رأس مالك، أو أن تصبر ٥ أشهر فتربح ٣٠٠%، فلو اخترت الأول يكون تفضيلك الزمنيّ مرتفعاً، ولو اخترت الثاني كان منخفضاً). واعتمد هانز هيرمان هوبا هذا المعيار لقياس ازدهار الحضارة، فكلما فل التفضيل الزمنيّ للمجتمع زاد تركيزه على بناء الحضارة الراسخة، ولم ينصرف ذهن وجهد المجتمع المكاسب الآنيّة البائدة.
وبناء على ما سبق، اتّخذ هوبا معيار التفضيل الزمنيّ في دحضه لألوهيّة أو قداسة الديمقراطية، فحسب رأيه: الديمقراطية تؤدي لزيادة التفضيل الزمنيّ، وبالتالي انهيار الأخلاق والحضارة.
واعتبر الطريقة الّتي يكذب أو يدلّس بها المرشّحون السياسيّون في الانتخابات في النظام الديمقراطيّ (المعتمد على الأغلبيّة) على النّاخبين نتيجةً لارتفاع التفضيل الزمني عند الشعوب، فيطمحون للنتائج السريعة الّتي يعدونهم بها ولا ينظرون إلى الأمور نظرة واعية محيطة مدركة لبواطنها ومآلاتها.
ثمّ يبدأ بالمقارنة بين الديمقراطيّة والمَلَكيّة. (وهنا يجب التمييز بين الملكيّة المطلقة والملكيّة القانونيّة والدستوريّة، فقصد هوبا هنا هو الملكية المطلقة الّتي تعتبر السّمة الأوضح للدول ما قبل الحرب العالميّة الأولى).
والمقارنة بين الديمقراطية والمَلَكيّة مقارنةٌ مَعيبةٌ اصطلاحا، وكان أولى لو سمّى الملكية بمصطلح الديكتاتوريّة أو الأوتوقراطيّة، لأنهما وسيلتا حكم مثل الديمقراطية، أما الملكيّة فهي نظام سياسيّ. ومقارنة المختلفات لا تجوز عقلاً.
وأساس هذه المقارنة أنّ الملك أو الدكتاتور يتعامل مع الدولة كملكيّة خاصّة له ولأسرته يرثونها من بعده، فيحرص على إنمائها كونها مِلكاً خاصّاً مورّثاً. أمّا في الديمقراطيّات فالقائم بأعمال الإدارة ليس صاحب سيادة، بل ممارساً لمهمامها لمدّة معيّنة غير قابلة للتجديد بشكل مطلق، فيرى هوبا أنّ هذا الشخص سيسعى لاستغلال ثروة البلاد أو المنصب لصالحه في هذه المدّة، وكون هذا المال ليس ملكاً له، ولا لورثته بعده، فإنه سيجتهد في استغلاله بكل الطرق الممكنة، لا إنمائه كالملوك، وبتتابع الرؤساء والنوّاب على المنصب، سيستغلّ استغلالاً جائراً بشكل متكرّر حتّى تضمحلّ الثروة ثمّ تتلاشى، وبالتالي تلاشي الدولة. لأن هذا المسؤول لا يتحمّل عبء الديون التي يُثقل بها الدولة، بل يتحملها الشعب، أما الملك فيعتبر هذا الدين دينا يجب أداؤه من ذمّته الماليّة الخاصّة (الدولة، المزرعة).
والملك أحرص على توسيع أرضه وسلطاته وبالتالي ثراء الدولة، من المنتخَب محدود المدّة الّذي لا هموم توسّعيّةً عنده غالباً.
كما اعتبر المَلَكيّات أكثر استقراراً من الديمقراطيّات، من نواحي التشريعات والمجتمع والاقتصاد.
ونظرته للملكيّة هنا ليست دعماً لها، بل تفضيلاً لها على الديمقراطية.

والنّظام الأمثل بالنسبة لهوبا هو اللانظام، أو النظام الطبيعي الّذي يخلو من العيوب الاقتصاديّة والأخلاقيّة، أي أنّه خالٍ من الاحتكار والضرائب. (الأناركيّة المنظّمة أو الرأسمالية الخالصة أو مجتمع القانون الخاص[يكون جميع الأفراد فيه مُعامَلين على قدم المساواة دون سلطة عليا للحكومة أو مؤسساتها]) ويعتبر هوبا القانون العام (الدستوريّ والإداريّ والماليّ وقانون العقوبات) الذي تكون الدولة فيه صاحبة سلطة وسيادة تعلو على الأفراد العاديّين، عدوّاً للقانون الخاص. وحقيقة الأمر أنّه ضمانة وحماية لأشخاص القانون الخاص.
وسبب هذه الفكرة عنده أنّه يعتبر الدولة والحكومة مجرّد فارض ضرائب محتكر للقوّة والإكراه في إقليم معيّن، هدفه سرقة الملكيّات الخاصّة وتعميمها.
والخطير بنظره أنّ الحكومة تمارس الإجرام تحت مظلّة قانونيّة بنزعها الملكيّات الخاصّة من مُلّاكِها الأصليّين.
وبناءً على هذا "التهديد" يرتفع التفضيل الزمنيّ عند أصحاب الملكيّات الخاصة، لخوفهم من سلطة الحكومة وتهديد نزع ملكيّاتهم منهم؛ وبالتالي امتناع التطوّر الحضاريّ للمجتمع، وازدياد السّعار الملاحق للمُتَع السّريعة، أي الانحطاط الأخلاقيّ العامّ.

وكون الديمقراطيّة إعادة توزيع للثروات (أخذ من الأغنى لصالح الأفقر)، فإنه يعتبرها مسبّبا رئيسيّاً للكسل والتّواكل وعدم الاعتماد على الذات وزيادة الاستهلاك وقصر النظر، فطالما يغتني من لا يجتهد على حساب من يجتهد فلن يكون هناك أي داعٍ ليقوم الفقير ليعمل. وعلى الناحية الأخرى، فالذي يعمل ويُقتطع جزء من دخله لإعالة من لا يريد إعالة نفسه، سيعمل بإنتاجيّة أقل.
وعليه، فتوزيع الثروة زاد المشاكل الّتي جاء لحلّها إشكالاً.

والديمقراطيّات تدعو إلى الحروب الأهليّة، خاصة في البلاد متعدّدة القوميّات، لأنّ القوميّات الأكبر ستنفرد بحق تقرير المصير دون غيرها لنيلها أغلبيّة الأصوات في الانتخابات، وبالتالي توليد شعور بالظلم مآله حتماً الدعوة للانفصال أو الثورات، أي إعلان حرب على الدولة المركزيّة.

•نتائج الديمقراطيّة:
ازدياد الحروب الأهلية والدوليّة.
تقدم سير المركزيّة السياسيّة.
ارتفاع دائم للضرائب والديون.
تضخم وتوحّش هيكليّة الدولة وازدياد الموظفين العموميّين.
الهجرات من مراكز الفقر إلى مراكز الثروة.
تحريف القوانين والتشريعات وفق رغبات النوّاب والوزراء.
تضخّم عدد القوانين فبالتالي استحالة إدراكها من العوامّ، ولو أدركوها فهي سريعة التعديل منعدمة الاستقرار.
تدهور مؤسسة الأسرة والزواج، وازدياد نسب الطلاق والولادات غير الشرعيّة والإجهاض والأبوّة المنفردة.
انخفاض نسب المواليد.
تراجع النخب السياسيّة والفكريّة لتراجع مستوى التعليم.
الركود الاقتصادي.
ارتفاع معدلات الجريمة والبطالة والتدهور النفسيّ، والسعي خلف المتعة.
السماح لأيّ كان بالوصول إلى المناصب التشريعيّة والإدارية، وبالتالي وصول حمقى وعنصريين وفشلة إلى مناصب خطيرة قد تهلك الدولة.


•الضرائب وكيفيّة صرفها في الحكومات الديمقراطيّة:
١-تصرف على تكاليف القبض على المجرمين ومحاكمتهم وسجنهم، وبالتالي يتحمّل الملتزمون دافعو الضرائب عبء المجرمين.
٢-مشاريع الحفاظ على البيئة التي تؤدي "لإيجاد حيوانات ميسورة وبشر أعسر وأقلّ جودة.
٣-تعتبر الضرائب مورد ميزانية الدولة الأكبر، فرواتب الموظفين العمومين والمؤسسات والهيئات والمشاريع الحكومية منها. فلو تشعّبت مصارف الضرائب إلى الأمور غير المهمة تزيد النفقات وبالتالي تقل رواتب الموظفين وكفاءة الأجهزة الحكومية كافّة.


من أقواله العظيمة:
•يجب الحذر في الاستثمارات الأيدولوجيّة كما في الاستثمارات المادّيّة.
•يجب أن تبدأ كل ثورة اجتماعيّة بالضرورة ببضعة رجال استثنائيين، هم النخبة الطبيعيّة.
•في حال غياب معيار ثابت «للحق» «لن يكون هناك أيضاً تعريف ثابت» للجريمة.
•الاختيار بين الديمقراطيّة والملكيّة اختيار بين نظامين اجتماعيّين معيبين.
•تنحرف عمليّة بناء الحضارة عن مسارها بشكل دائم عندما تتّخذ انتهاكات حقوق الملكيّة شكل تدخّلات حكوميّة. إن العلامة المميّزة لانتهاكات الحكومة أنّها على خلاف الأنشطة الإجراميّة تعتبر شرعيّة، ليس فقط من قبل وكلاء الحكومة القائمين عليها، بل من قبل عامّة الشعب أيضاً، وحتّى الضحيّة أحياناً.
•يحدّد مسار التاريخ البشريّ من خلال الأفكار: سواء صحيحة كانت أو خاطئة.
•ألا تملك الحقيقة دوماً جاذبيّتها الخاصّة؟!




الانتقادات على الجزئيات السابقة:
• تحيّز شديد في المقارنة، فهو يعطيك أسوأ ما عند الديمقراطية وأفضل ما عند الملكيّة، ولو راعى الحقّ في مقارنته لما كانت على هذا الشكل من تفضيل الملكيّة تفضيلا مطلقاً على الديمقراطيّة.
•اعتبر الديمقراطية مجرد وسيلة للحكم، إلا أنّها ممارسة شاملة ركنها الأساسي الرقابة والمساءلة، فلا مجال واسعاً للاستغلال الّذي يصفه هوبا في الديمقراطيات المحترمة. أما لو اعتبر مصر وليبيا ديمقراطيات فخطؤه في فهم جوهر الديمقراطيّة.
يقول هوبا: إن الوصيّ على الحكم ليس لديه مصلحة في عدم تدمير بلاده. (لأنه ليس مالكاً له) وهذا الرأي غريب.
معاملة أشخاص الإدارة بهذا الأسلوب إطلاقاً وكأنهم لا غاية لهم إلا السرقة والاستغلال أمر غريب، ويحاول هوبا بناء نظرية سياسية-اقتصادية عليه.. والبناء على انمساخ في الفهم لا يولد إلا مسخا فكريّا، لا نظريّة واقعية.
ولو استغلوا مناصبهم لمصالح غير قانونيّة فهم في حالة شذوذ غير طبيعيّة، تعاقب عليها الأنظمة، خاصّة أنّهم خاضعون للرقابة الشعبيّة أو رقابة من ينوب عن الشعب.
•التاريخ يثبت على امتداده أن الملوك ليسوا قادرين على إثراء وتعظيم ملكهم، لجهل أغلبهم في السياسية والحرب وضعفهم العام، وذلك لاعتياده حياة الرغد. والملوك الأقوياء ليسوا إلا طفرات نادرة في التاريخ.
راجع مقدمة ابن خلدون ، فصول اضمحلال الدولة. ففيها شرح واف.
•خلطه في المصطلحات الدستوريّة والسياسيّة، الذي قد يكون سببه مرجعيّته الاقتصادية.
مثل الخلط بين أنظمة الحكم ووسائل الحكم، وخلطه بين الدولة والحكومة.
•اعتبر حروب المَلكيّات حروبا غير عامّة لأن هدفها توسيع الملكيّة الخاصة للملك، وحروب الديمقراطيات حروبا شاملة. ولو نظر في غالب الحروب عبر التاريخ لوجد سببها إمّا دينيّا أو طائفيا، أو قوميّا، وكلا النوعين حروب عامة شاملة، أما حروب توسيع الملكية الخاصة فقليلة.
وتوسع جمهوريّة فرنسا وبريطانيا (بعد اعتبار الملك سائدا ولا يحكم) توسع له نفس أثر توسع الملوك لزيادة ملكيّاتهم الخاصة. فلا علاقة هنا لنوع النظام الحاكم بالاستعمار والتوسع، فهو نزعة طبيعية للحكومات المركزية مهما كان شكلها.
•اعتبار الدولة مجرد سارق للضرائب والملكيات الخاصة ومحتكر للقضاء وقوة الإكراه اعتبار لا إنصاف فيه، وسأوضح سببه عند مناقشة جزئية الحماية من الشركات الخاصة.
•تجيز الأناركية تملّك أي شيء، فلا وجود للمال العام فيها، وبالتالي يمكن ل"حيتان السوق" شراء الأنهر ��المياه الإقليمية والشواطئ ومنابع المياه وحتى الجوّ كاملا، ويمكن للمالك منع من يشاء من دخول ملكيّته الخاصة، فلهؤلاء المُلّاك منع الكل من استخدام الموارد الطبيعية الي يملكون، وهذا مؤذن بخراب النظام الاجتماعي كاملا.
•الحديث عن كثرة القوانين وتفصيلها "لكل شيء تقريبا" كونه أمر سيئ، إلا أنه حماية للمستهلكين والمواطنين، وليس لزاما على كل الشعب معرفة كل القوانين والأنظمة فهو عمل المختصّين القانونيّين. كما أنه لا يلزم الجميع معرفة جميع الأدواء وأدويتها، فهو عمل الأطباء.
وأتفق معه تماما بخصوص استقرار التشريعات.
•منح حق الانفصال للأقليات كما قاله ميزيس وأيده فيه هوبا أساسه منطقيّ صحيح، لكنه مثير للإشكالات والحروب ومهلك للشعوب والملكيّات، ويزيد التمييز العرقيّ والدينيّ، كما أنّه سيخلق عالما ضائعا مليئا بالأشخاص الدوليّين، لآلاف الدول على الأقل، التي لا يعرف أغلبُها أغلبَها.
•اعتبار الدساتير والمحاكم العليا ألعابا في أيدي رجال الحكومة، وهذا لا يكون إلا في دولنا التعبانة.
•يعيب هوبا على الديمقراطيّات حدّها من الحريات العامّة لحفظ الصالح العام. كحظر التجارة في الأوبئة والحؤوب مثلا، وهذا لا أراه إلا وقاحةً واستهتاراً بالمجتمع.
•اعتبر العلاقة بين المركزيّة والازدهار مجرّد صدفة زمنيّة، دون توضيح أو تفسير لكلامه. واعتبر العديد من النتائج نتائج لأسباب هو افترضها دون إثبات كلامه. ولا أعلم على ماذا بنى منهجيّته في ربط الأسباب بالنتائج.
•مقارنته بين الانفصال الطوعيّ والاندماج القسريّ باطلة أساساً لأنه لا مقارنة بين شيئين من جنسين مختلفين. فلو أراد توضيح الفرق بين الانفصال والاندماج لقارنه بموضوعية أكبر. (دون أخذ أفضل صورة للانفصال مع أسوأ صورة للاندماج، كما فعل بمقارنة الديمقراطية والملكيّة).
•فكرته الأخلاقيّة للدول الشيوعيّة بعد زوال الشيوعيّة فيها رائعة نظريا لكن صعبة التطبيق عمليّا. ومفادها إعادة الأملاك المؤمّمة لأصحابها الأصليين أو ورثتهم الطبيعيّين إن وجدوا، لا طرحها في المزادات.
•يقول هوبا: لكل شخص الحق في استخدام ممتلكاته الخاصّة بأي طريقة يراها مناسبة طالما أنّه لا يؤذي السلامة الجسديّة لشخص آخر أو لممتلكاته.
وهذه نظرة قاصرة لحقوق الآخرين.
اعتمد القضاء والفقه الإداريّ والتشريعات من بعدهما أنّ النظام العام جزآن مادّيّ ومعنويّ، ويتمثل المعنويّ في الآداب والأخلاق العامّة. أما نظرة هوبا لهذا النظام فمادّيّة بحتة.
•الأمنية الليبرالية في حكومة عالميّة أمنية مرعبة. كما قال كارل ياسبر: في هذه الحالة لن يكون هناك مكان للهروب ولا الاختباء.
•مقارنته بين القانون العام والخاص واعتبار أنهما في عداوة، وحقيقتهما تكامل لا استقامة للأمر دونه، لأنه ضمانة للحق الخاص وللصالح العام في نفس الوقت.
•نتيجة لدعوته لإلغاء الدولة كلها لفشلها حسب نظرته لأنها تأخذ الضرائب مقابل الحماية والقضاء، ولا بديل يقدم هذه الخدمات غيرها، وبالتالي ستتردّى نسبة فاعلية خدماتها لانعدام المنافسة والبيروقراطية الحكومية في إدلرتها، فيجب إيجاد حل لمشكلة الحماية والأمن بعد إزالة الدولة، وكان حله الشركات الخاصة للتأمين والحماية، واشترط عدم احتكار هذه الخدمات من عدد قليل من الشركات.
نقد الفكرة:
١-كنّا ندفع الضرائب، والآن ندفع الاشتراكات، التي قد تكون أعلى، فلم تحلّ المشكلة الماليّة.
٢-الخدمة لا تشمل إلا المشتركين القادرين على الدفع، أما الفقراء فلا بواكي لهم.
٣-كما في أيّة تجمع تنافسيّ للشركات، قد يتفق أصحاب هذه الشركات إما من خلال نقابة أو جمعية بينهم على وضع حد أدنى للقيمة المطلوبة للخدمة، وبالتالي لن يكون التنافس التجاري بينها مطلقاً لضمان مصلحة الشركات الكبرى. وعليه لن تكون الأسعار منخفضة كما ظنّ هوبا.
٤-إذا نشأ خلاف قضائي بين الشركة القضائية والمنتفع، فلأيّ جهة ستقدّم الدعوى في ظل انعدام الدولة؟ ببساطة سنتحول من دكتاتورية الحكومات إلى دكتاتورية الشركات. تماما كدكتاتورية العمّال في الاشتراكيّة!
Profile Image for [Name Redacted].
838 reviews495 followers
October 2, 2023
A post-Evolan Evola who rejects monarchy but concludes that it is nowhere near as tyrannical as what we claim to be "Democracy." Instead Hoppe advocates for a pseudo-Libertarian anarchy grounded in the free association of families. Fascinating, if decidedly bleak in its perspective on the 21st century -- even more-so because it predicted our current plight nearly 25 years ago.

I think I'll have to re-read this one day, both because it is so dense and because it is a more intense black pill than I'd anticipated.
Profile Image for Joshua.
259 reviews55 followers
December 5, 2020
This controversial book is an excellent collection of essays on the flaws of the sacrosanct institution of expansive democratic government. Hoppe argues that an expansive, compulsory democratic system incentivizes the short-term consumption of capital goods at the expense of long-term interests. After all, public officials in a democratic system do not own public property; thus, they are motivated to seek maximum income from the use of that property during their short tenure in office. As a result, they will not engage in wise saving/investment like private property-owners and instead will waste capital goods extorted, in the first place, from the nation's populace. Further, expansive democratic control turns people, corporations, and special interests into "political entrepreneurs" seeking favors and transfers of wealth via appeal to the majority population (see also Buchanan's work on public choice economics and Bryan Caplan's The Myth of the Rational Voter). Increasingly, the rich acquire their wealth through association with the coercive machinery of the state rather than through the creation of value typical of the free market. Hoppe credits expansive democratic control with the erosion of freedom (particularly freedom of association and economic liberty). All of this is done under the legitimizing auspices of popular government.

The weakest element of the book is the explanation of how a free-market system might address problems traditionally handled by the state (transportation infrastructure, security/anti-crime services, etc.). While I enjoy reading about Hoppe's theories, they have the least practical value. After all, if we could accurately predict how the free market would respond to various demands, effective central planning would be possible!

It is important to note that democratic control does not legitimize human rights abuses, infringement on private property, or violent aggression. It does not erase the calculation problem of centralized control of the economy or diminish the damage of social engineering. With that in mind, Hoppe is correct in asserting that the reach of government - even democratic government - must be strictly curtailed to preserve human rights (property rights). While I am not entirely on board with Hoppe's views, I appreciate his unconventional thinking and his willingness to take on sacred institutions. This is a fun, engaging read. At the very least, it challenges strongly held views and requires its readers to think about why they believe what they believe.
Profile Image for Jonathan Sargent.
62 reviews4 followers
January 9, 2015
What starts out as an argument against democracy eventually devolves into an argument for an anarcho-capitalist society run by multinational insurance companies. Democracy: The God That Failed has many flaws, but for anyone moderately interested in history, political theory, and political philosophy would be wise to read Hoppe's book. It has a several flaws and will probably have left-wing types foaming at the mouth most of the time, but it's a well-written collection of radical libertarian arguments.

Hoppe is one the most lucid clear, well read and thorough political writers I've read in quite some time. Unfortunately his major flaw comes shining through quite too much: he is a slave to his premises of radical libertarianism. He acknowledges this, but anyone who disagrees with any part of his premises will have a hard time justifying his ultimate thesis of a stateless society.

So I'll give a bit of pros and cons. Let's start with the pros.

1. Hoppe loves footnotes. LOVES them. I've added about 10+ books I'm interested in reading just from footnotes alone. Many a time a footnote alone will exceed the length of an entire section or chapter. It's very clear that Hoppe has done his research on his subjects, but he does have a severe tendency to cull from the same sources. (This book might as well be called: Mises & Rothbard: Why They Are Right About Everything)

2. The complete lack of political correctness. This might be a con depending on your political persuasion, but I'm much more prone to enjoy an author who isn't afraid to share his radical beliefs proudly and logically.

3. Sections on democracy, immigration, and modern American conservatism. Here is where Hoppe shines. It's also one of the few places where he no longer has to rely on his premise that any government is unjust.

Cons

1. This is a book of collected speeches, so often I found myself re-reading paragraphs I had read in previous chapters. At first I had no issues with Hoppe repeated clarifying his position, but by the 17th time he repeats what a state is supposed to do, you get a bit sick of it.

2. As mentioned previously, Hoppe is a radical libertarian. If you think Ron Paul is crazy, Hoppe belongs in the mental asylum. This distracts from his arguments against democracy and spoils the book.

Generally a thought provoking read, Democracy: The God That Failed too often slips into radical libertarian rants. If you're a libertarian or interested in political theory, highly recommended. Otherwise, steer clear.

Profile Image for Hani Al-Kharaz.
267 reviews98 followers
August 4, 2020
عندي مشكلة مبدأية مع مقاربة المسألة الديمقراطية وأشكال الحكم الرشيد من زاوية اقتصادية محضة. فلكونها غير سوية أخلاقياً وقيمياً فإنها ستؤدي حتماً لنتائج من نفس العينة، مثل تفضيل هوبا في هذا الكتاب الأنظمة الملكية (رغم استبدادها) على الديمقراطية، وحكم الفرد على حكم الجماعة، واستحسانه الفروقات الطبقية ونقده لتوزيع الثروات والعدالة الاجتماعية وغيرها. الاقتصاد وحده - بعبارة موجزة - ليس أساس النهوض الحضاري في وجهة نظري

هناك انتقادات محقة للمسألة الديمقراطية، فهي ليست النموذج الأفضل بشكل مطلق بل خلاصة التجربة البشرية وربما أفضل الأنظمة السيئة كما قال تشرشل، ولذا فهي تتطلب على أي حال النقد والتصويب. ولكن عندما نتناولها بالنقد فمن الضروري التمييز بين العناصر المتداخلة في تكوين الدولة الحديثة التي نشأت بعد الحرب العالمية الأولى: الديمقراطية الليبرالية والرأسمالية والدولة القومية، حتى نفرق بين ما نتج عن الديمقراطية وما نتج عن هيمنة الرأسمالية، وما تسببت به هيكلية الدول القومية الخ

في واقع الأمر، عند النظر في تشخيص هوبا للوضع العالمي بعد الحرب العالمية الأولى، نجد أن الكثير من المشكلات التي أشار إليها من ارتفاع في معدلات البطالة والدين العام وارتفاع التفضيل الزمني وغيرها، هي نتاج صعود وهيمنة الرأسمالية والفردانية التي ارتكزت عليها الليبرالية الغربية ولا علاقة لها بالممارسة الديمقراطية كما يحاول هوبا إثباته في الكتاب.

والمشكلة في الكتاب تتخطى ما وجهه هوبا من نقد للديمقراطية، إلى البديل الذي يطرحه، الرأسمالية اللاسلطوية كما أسماها، والتي ستقود حتماً إلى أكثر صور الرأسمالية توحشاً وجموحاً، وهو ما سيؤدي إلى تأزيم المشكلات ذاتها التي استعرضها هوبا ونسبها للديمقراطية ظلماً

المدهش، أن هوبا ارتكز في بناء نظريته على مقارنة الأنظمة الديمقراطية اليوم بالأنظمة الملكية في أوروبا القرن الثامن عشر والتاسع عشر، رغم وجود فروقات ضخمة بين الحقبتين التاريخيتين لا سيما في وسائل التسلط، ما لو توفرت لتلك الأنظمة لربما أدت لاستبدادها أكثر (وقد كانت مستبدة على أي حال ودموية تجاه شعوبها وتجاه شعوب العالم الأخرى التي لا يبدو هوبا مكترثاً بها على أي حال). كان الأولى لو نظر هوبا إلى الأنظمة الملكية الوراثية القائمة في زماننا ولو فعل لما استعصى عليه الخلوص إلى تهافت نظريته واستنتاجاته.
Profile Image for M.G. Bianco.
Author 1 book117 followers
December 13, 2013
Been wanting to read this book for awhile, finally have. Over time, I've found myself with a leaning toward monarchy--not sure why. Hoppe provides some excellent examples in this book of why democracies are inherently bad. Throughout, he tends to contrast democracies with either monarchies or anarcho-capitalist communities. While he obviously favors the latter, he has many good things to say for the former.

One point of interest is that he rarely says anything bad about monarchies. When he does, it is generally more of an assertion that they are bad because they can exercise the power to tax and use force. He assumes that his readers will agree that any exercise of these powers is necessarily an evil, what Frederic Bastiat called "legal plunder." He offers very little to prove such an assertion. Generally, however, he is very positive of monarchies, recognizing that they have what democracies do not: private ownership. This private ownership is built into the system for the king or queen and provides a protection (an imperfect one, but a protection nonetheless) against excessive tyranny by the king or queen. This private ownership and protection is similar to what is found in the theoretical benefits of a hypothetical anarcho-capitalist community. Democracies, on the other hand, have no such private ownership built into the system, and therefore offer none of the protections against abuse.

This book is a good one, and worth reading if you are at all interested in libertarian or monarchical politics. He's clearly arguing for his own ultimate perspective: anarcho-capitalism, but he provides many great arguments in favor of a monarchy.
Profile Image for Henri Siege.
2 reviews
March 28, 2022
Absolutely great essays tackling a very rare subject, the misshapes of democracy.

It's very well articulated, brings forth good points, and overall a must read for anyone wishing to see all points of view of the political spectrum/compass/sliders/whatever.

However, having given it its due praise, one must also shed light on its faults. For a work supporting the opposite of the problematic "affirmative action" and "leftist ideals" that so often use biased, filtered information, famously putting "feeling over fact"; DTGTF does pretty much the same. It twists certain historical facts and realities, some quite important to get right even for a person who doesn't claim to be historian, petty mistakes that just so happen to help Hoppe's argument. Other times, mental and political gymnastics are used to justify POVs, i.e. immigration.

All and all, a great read to understand anarcho-capitalism and even monarchism, but plagued with the same propaganda styled writing of MSM and leftist rhetoric.
This entire review has been hidden because of spoilers.
Profile Image for Andrei Hognogi.
82 reviews2 followers
November 7, 2021
This is a fairly good argument for a type of anarcho-capitalism.

It starts out with a bunch of theory on market dynamic which strikes me as the kind of modeling that would make N. N. Taleb to go on endless rants.

The book picks up after the first third, and starts comparing different regimes and their faults.

The biggest flaw of the books is that it repeatedly makes the "it will do that because it's in its best interest".

Companies often do stuff that seem not in their best interest, because their best interest is a complicated subject. Private hospitals famously stay away from terminally ill patients, car mechanincs ensuring you return to them sooner rather than later etc. The expectation that there won't be any fine print in these idealistic contracts seems naive to me.
Profile Image for Latifa.
39 reviews
December 24, 2021
ليبرالي عنصري قذر بس عنده وجهة نظر في سبب استمرارية الحكومات الملكية على الديموقراطية الحديثة، ولم اتفق معه في نظرية التفضيل الزمني وارى ان هنالك عوامل واسباب اخرى تؤدي الى تفضيل زمني مرتفع لم يتطرق إليها الكاتب
Profile Image for Linus Lindeberg.
17 reviews3 followers
June 3, 2022
Episk.
Demokrati leder till decivilisering, konservatism är enbart möjligt utan en stat osv. Mycket vackert. Bra och pragmatisk fortsättning på tidigare österrikisk ekonomi, exempelvis Human Action med Mises.
December 24, 2020
#بيان_التشوهات_الفكرية_لهانز_هيرمان_هوبه_في_كتابه

"الديمقراطية الأله الذي فشل"

الآن بالطبع لن يتفاجيء أحد اذا تعرض هوبه لأنتقاد من الشيوعيين أو الاشتراكيين هذا اذا كانوا قد سمعوا به أصلا، لان الحقيقه الصادمه ان هوبه أصلا غير معروف خارج الدوائر الليبرالية و الليبرالية الراديكالية على الرغم من ان أتباعه يرغبون في تصديق ذلك.
بالنسبة إلى قناعتنا الشخصية السياسية فنحن نعترف بمباديء الليبرالية الكلاسيكية و فلسفة جون لوك و آدم سميث و ديفيد هيوم و لودفيغ فون مايسس و فريدريش فون هايك ... و حرية الفرد.. و حماية حقوق الملكية ، هذه هي اسس تفكيرنا و فكرنا لاننا نعلم يقينا أن هذه القيم ذات أهمية أساسية للانسان و الدوله و تقدمها، لكن هوبه على الرغم من ادعائه الدفاع عن نفس هذه القيم ألا أن نظرياته و استراتيجياته هدامه و هذا هو السبب الذي جعل هوبه يختار الليبراليين الكلاسيكيين و النيوليبراليين ليكونوا هدفا له لهجماته و حقيقة ان هذه الهجمات لم يرد عليها احد من قبل ليس لانها غير قابله للرد بل لأنها ببساطة لم تنتشر خارج دائرة تلاميذه يعني تخيل كتابه هذا نشره عام 2001 !!
فقبل أن انتقد هوبه يجب ان أوضح أن التفكير الإقتصادي لهوبه ليس خارج التيار الفكري الليبرالي السائد على الإطلاق فعندما وصف هوبه كيف ان الدوله التي كان من المفترض ان تحمي ممتلكات مواطنيها أصبحت تهديدا لتأمين حقوق الملكية فهو على حق لان ببساطة هذا تحليل جون لوك، أو عندما يقول ان الديمقراطية تميل إلى إستخدامها من قبل الجماعات لتحقيق اهدافها الخاصة فهذا تحليل الليبراليين أمثال الرئيس ال 15 لأمري��ا جون بوكانان و الاقتصادي الكبير غوردون تولوك ، أو عندما يحلل كيف يدمر احتكار الدولة للنقود الورقية المال كان على حق مرة أخرى و توصل ليبراليون الى هذا الاستنتاج قبل عقود من هوبه فهو لم يأتي بشيء جديد و نتفق مع هذا الطرح ، لكن عندما نأتي لمغامرات هوبه في مجال الفلسفة السياسية و فقها لتطوير و رسم بديل للديمقراطية ، هنا يبدأ بفقدان تألقه الحاد الذي جعله اقتصاديا جيدا و كل ما يفعله هو الانغماس في تكهنات مجردة للغاية حول الانظمة الاجتماعية البديلة. فإن تفكيره يتراجع تماما.

أسمحوا لي أن ألخص رؤية هوبه بإيجاز : بديله للديمقراطية هو تعميم كفائات السوق و فرض نظام اجتماعي جديد على المجتمع ، يسمي هوبه هذه الحاله "بالنظام الطبيعي" 😂 ببساطة خصخصة كاملة للحياة ، حيث يفترض انه في مثل هذا المجتمع لن تنشأ النزاعات 😂 المحتمله في المقام الأول أو يتم حلها بواسطة مؤسسات مثل شركات التأمين 😑
نعم، الرأسمالية اللاسلطوية (الاناركية) فكرة جديدة لكن أيضا لم يخترعها هوبه ... فهوبه خليط من الرأسمالية اللاسلطوية و التوجه اليميني المحافظ للغاية ، قد يناقش المرء ايجابيات و سلبيات اللاسلطوية دون الرجوع إلى هوبه ، و لكن سيكون من الصعب فهم "النظام الطبيعي" لهوبه دون تقييم افكاره حول المجتمع الرأسمالي اللاسلطوي (الغابة الرأسمالية كما اسميها) .

فالسؤال هنا ما هو الطبيعي حول هذا "النظام الطبيعي" لهوبه ، فنحن عادة نسمي الأشياء الطبيعية "طبيعية" عندما تكون من الطبيعة ، فأن الطائر طبيعي لانه من الطبيعة، لكن الطائرة ليست كذلك. لكن ما هو الطبيعي في نظام اجتماعي لم يكن موجودا من قبل أصلا؟؟؟
فبنفس التبرير يمكن أن يصف الشيوعيين "مدينتهم الفاضلة" بإنه نظام اجتماعي طبيعي لأنه يتوافق مع أفكارهم عن الطبيعة البشرية، لكن هذه هي المشكلة تحديدا كما لم تكن الانظمة الاجتماعية للأشتراكية و الشيوعية سوى نظرية ذات مساند و ليست واقعية ، فكذلك نظام هوبه مجرد نتيجة لأعتبارته النظرية ، حيث يقدم هوبه نفسه على انه بنائي لأنه يتجاهل الحقائق التاريخية المتزايدة ثم يستبدلها بتجارب فكرية خاصة به. ألم تكن هذه هي الطريقة التي سار بها الأيديولوجيين الشيوعيون كذلك؟؟؟
ألم تكن انتقادات فريدريش فون هايك للتفكير الاشتراكي هو اعتقادهم انهم يستطيعون عمدا خلق نظام أفضل للمجتمع؟
فإذا كان هوبه يتصور مجتمعا قائما بالكامل على إتفاقيات تعاقدية طوعية متبادلة ألا يحتاج إلى "رجل جديد مختار" لإنجاح هذه الرؤية 😅
هل يعتقد هوبه بجدية انه يمكن دمج الأشخاص الناقصين و الذين غالبا ما يكونون غير عقلانيين و غير اخلاقيين في مجتمع تطوعي خال من أي نوع من الإكراه دون تعريض الحرية و حقوق الملكية للأفراد الاخرين للخطر؟؟؟
قرون من النظريات التعاقدية للمجتمع من توماس هوبز الى روبرت نوزيك تجعل رؤية هوبه تبدو ساذجة ... ستتطلب النتيجة الضمنية لهوبه تطوير ليس فقط نظام اجتماعي جديد لكن أيضا مجتمع جديد و كائنات بشرية جديدة لهذا المجتمع 😂😂 ، حتى الان ، كان هدف الايديولوجيات الشمولية دائما هو خلق "الرجل الجديد" و أوجه التشابه لهذه الأيديولوجيات مع افكار هوبه مدهشة للغاية بحيث لا يمكن التغاظي عنها.

البناء الفلسفي لهوبه لا يعتمد على التجربة فهو يؤكد على أن الحقائق العلمية و الأكاديمية يمكن استنتاجها عن طريق استخدام منطق خالص خالي من أي إثبات تجريبي ، قد يكون هذا ممكنا الى حدا ما ، حيث لن يدخل أحد طواعية في إتفاق تعاقدي اذا كان يعتقد ذلك سيجعله أسوء أو مثال اخر : ليس من الممكن تكوين ثروة عن طريق طباعة النقود الورقية على الرغم من أن الكثير من الناس لا يزالون يعتقدون ذلك ، في مثل هذه الحالات من الممكن وجود منطق اقتصادي لا يمكن دحضه و هذا صحيح بغض النظر عن الحقائق التجريبية ، لكن هذا لا يمنع الاقتصاديين من التحقق من نتائجهم النظرية و مقارنتها بالعالم الحقيقي من حولهم، فبعد كل شيء الاقتصاديون ليسوا معصومين عن الخطأ. الآن يحاول هوبه تطبيق أسلوبه الأقتصادي على الفلسفة الاجتماعية ، لكن مثل هذه الانتقالات للطريقة لا تخلوا من المشاكل، و من المفارقات أن هوبه نفسه دائما ما حذر من تطبيق اساليب العلوم على المشكلات الإقتصادية و إستخدامه لتحليل المجتمع . فهذا يجب أن يفشل لان نظرية هوبه تقوم على نوع من المجتمع غير موجود و في الواقع لم يكن موجودا على الإطلاق. على هذا الأساس، يمكن للمرء إجراء تجارب فكرية لكن هذه التجارب لن تكون أبدا علمية أو واقعية، و بالتالي لا يستطيع هوبه أن يفعل أكثر من التفلسف بطريقة نظرية و تجريدية للغاية حول " النظام الطبيعي " الخاص به ، دون السماح للحقائق التجريبية بأن تقف في طريقه ، مع ذلك، 😂 أنه يحب إستخدام الأمثلة التاريخية لإخفاقات الدوله لتوضيح نظرياته، أي انه يستخدم النتائج التجريبية حيث تتناسب مع آرائه، لكنه يتجاهل جميع الحقائق التاريخية و الحالية الأخرى.
هذه الطريقة في الإدراك الإنتقائي هي نموذجية بالنسبة له ، اي مجرد التفكير بالأبيض و الأسود : الحاله السيئة، و النظام الطبيعي، و هذه الطريقة غير علمية بتاتا.

فإذا كانت منهجية هوبه مضلله بالفعل، فلن تتحسن حجته من خلال تقديمها بطريقة غامضة و مضلله و هذا جزء من استراتيجيته للوصول إلى مجموعة مستهدفه معينة و هي الليبراليين ، فهو يؤسس ل��تعصب و اللاتسامح، خذ مثلا هذه الفقرة الشهيرة في كتابه:" لا يمكن أن يكون هناك تسامح اتجاه الديمقراطيين و الشيوعيين في نظام إجتماعي تحرري، يجب أن يتم فصلهم جسديا و طردهم من المجتمع".
فهوبه يرى نفسه محافظا و لقد أدعى مؤخرا أن المحافظين الحقيقيين يجب أن يكونوا ليبراليين راديكاليين، اذا أخذوا على محمل الجد القيم التي يؤمنون بها، لكن في احدى الندوات يقول هوبه " أشعر بالاشمئزاز من هؤلاء الجنس و المخدرات و محبي موسيقى الروك" و من الواضح انه كان يقصد الليبراليين الآخرين الذين لم يشاركوا قيم هوبه الإجتماعية ، حيث كيف يمكن لليبراليين ان يحرموا الافراد الآخرين الذين من حقهم في ان يعيشوا حياتهم وفقا لتفضيلاتهم الخاصة، طالما انهم يحترمون حياة و ممتلكات الآخرين !!!
ما هي الحرية التي تملي القيم الإخلاقية على أفراد المجتمع؟؟ ألم تكن دائما السمة المميزة للتفكير الليبرالي التسامح اتجاه طرق الحياة المختلفة؟؟ لكن أين هذا التسامح في نظرة هوبه للعالم ؟ فالطريقة التي يتعامل معها هوبه لا تجعله ليبراليا راديكاليا بل #رجعيا أو #شموليا .

فكما قلنا سابقا، افكار هوبه مثالية و غير واقعية و يتجلى ذلك بوضوح في الطريقة التي يتعامل بها مع الجريمة و العنف في عالمه الراسمالي اللاسلطوي، حيث يقول انه من خلال إسناد هذه المهام لشركات التأمين حيث من الممكن خصخصة الشرطة، و يفترض ان مستوى الجريمة سينخفض في ظل هذا "النظام الطبيعي" الجديد لأن شركات الأمن الخاصة افضل من نظامنا الحالي للشرطة و المدعين العامين و المحاكم الجنائية الحكومية ، حيث سيكون هناك حافز اقل لأرتكاب الأفعال الإجرامية إذا كان ذلك يهدد العلاقة التعاقدية مع شركة التأمين! يعني هذا ضمنيا أن هوبه يعتقد أنه بمجرد زوال الدولة لن يكون هناك عنف و جريمة في العالم 😂 و أكبر دليل على ذلك هو إلغاء هوبه الفعلي للقانون الجنائي في نظامه الطبيعي !!

الآن نظرية هوبه للجريمة خاطئة مثل منهجه بأكمله. الآن دعونا نتعامل مع تأكيده الرئيسي بأن الدولة خطرة لانها تشكل تهديدا دائما لحقوق الملكية الفردية. بالطبع، هذا البيان صحيح لان الدولة في كثير من الأحيان تنتهك حقوق الأفراد في التمتع بممتلكاتهم، لكن لا يمكن للدوله ان تنتهك اي حقوق اذا كانت غير موجوده ، نعم قرأتها بشكل صحيح الدولة غير موجوده . فالدولة - مثل غيرها من الكيانات القانونية - ليست سوى خيال قانوني، و الخيالات القانونية لا تفعل و لا تستطيع التصرف ، فالتمثيل شيء لا يستطيع فعله إلا الأشخاص الطبيعيون -الناس- فبالتالي اذا بدت الدولة و كأنها تتصرف فهي تفعل ذلك من خلال وكلائها ، لكن البشر مخلوقات متناقضة قادرة على فعل الخير و الشر ، فلماذا يفقد البشر قدرتهم على فعل الشر لمجرد إختفاء الخيال القانوني للدولة، هذا وحده لن يؤثر على الطبيعة البشرية. بالطبع الدولة يمكن أن يسيء لها بعض الناس من خلال فعل الشر ، و إذا لم تكن هناك دولة، فلن يكون هناك هذا النوع من الإساءة . لكن الإعتقاد ان اختفاء الدولة سيجعل العالم أكثر سلاما هذا إدعاء مشكوك فيه لسببين:-
- أولا : الجريمة و العنف الموجودان حاليا سيستمران بالوجود لمن يجب ان يحاربهما بشكل فعال بعد أن ألغينا القانون الجنائي و خفضناه لنوع من آلية التعويض و الضريبة !!
- ثانيا : الأخطر من ذلك ستكون هناك طرق جديدة لإساءة إستخدام السلطة في عالم هوبه ، و بالتحديد في شكل شركات التأمين. كيف يضمن هوبه أن شركات التأمين لن تتدهور و تتحول إلى شكل من اشكال المافيات و الميليشيات ، تبدأ بتهديد الأفراد الآخرين و إبتزاز أموال الحماية. لماذا لا يسيء الشخص (الذي يسيء إستخدام سلطته كرئيس للوزراء أو المستشار أو الرئيس) إستغلال سلطته عندما يصبح الرئيس التنفيذي لشركة التأمين ؟؟؟!!!

لا يبدو أن هوبه لديه إجابه على الإطلاق فيما يتعلق بالنقطة الثانية، ربما يقول ان هذه الأشياء لن تحدث لأنه ستكون هناك شركات تأمين متنافسة و هذ من شأنه ان يضمن عدم تدهورها. بعد كل شيء يمكن للعملاء فقط تغيير شركة التأمين التي يتعاملون معها ، لكن كيف سيحدث ذلك أي فرق؟؟؟؟!!!
تخيل معي الحاله التالية: تعرض صاحب المطعم X للتهديد من قبل شركة التأمين الخاصة به A ، يلجأ الآن إلى شركة التأمين B لطلب المساعدة ، و لكن ما الذي يجب أن تفعله B لحماية صاحب المطعم ؟؟ إذا كانت لديها قوة مسلحة مثل A يمكنها مهاجمة A و النتيجة ستكون حرب أهلية صغيره ، و إذا لم تكن لديها قوة مسلحة او إذا كانت قوتها المسلحة أضعف، فيمكنها ان تنصح X بالأنتقال الى بلد بعيد ، هذا اذا سمحت له الشركة A بالرحيل أصلا !!!

إذن تجاهل هوبه الحقيقة البسيطة المتمثله في أن العنف و الجريمة دائما ما ينشأن من البشر، و ليس من الكيانات القانونية فهذا يؤكد مدى الوهم الذي تبدوا عليه نظريته بأكملها. يريد هوبه حل كل مشكلة محتمله من خلال السوق الحره. لكنه لا يرى ان السوق لا يمكن أن يكون حرا إلا إذا قام شخص ما بإبقائه خاليا من العنف و الجريمة ، و هذا الشخص لا يمكن أن يكون شركة في هذا السوق لأن السوق الحرة يجب أن تكون موجوده و ان تكون حره قبل ان تتمكن الشركة من العمل كجزء منه. يجب أن يكون دائما هناك شخص ما يقوم بإزالة الشركة A من السوق اذا اصبح A تهديدا إجراميا و عنيفا للآخرين. إن محاربة العنف و الجريمة ضرورية للغاية لجعل الحرية الفردية ممكنه. لكن القيام ب��لك لا يمكن أن ينجح أبدا ، إذا كان المجرم و الضحية على نفس المستوى من الناحية القانونية، يجب أن يكون هناك ترتيب واضح للكفائات لضمان الحريات الفردية، بتجاهل هذه الحقيقه المنفردة ، يتجاهل هوبه عدم قابلية تطبيق نظريته بأكملها في الواقع. إذا أختفت الدوله فهذا لا يعني نهاية العنف و الجريمة لكن نهاية الحماية من العنف و الجريمة ، عندما لم تعد الصومال موجودة كدولة، فإن ما تبع ذلك لم يكن "النظام الطبيعي" الطوباوي ، بل قاعدة مدفع رشاش مع مئات آلاف من القتلى و هذا يوضح سبب دعم جميع الليبراليين العظماء وجود الحد الأدنى من الدولة، هذا ليس تناقضا نظريا كما قد يعتقد هوبه، فالنظام الطبيعي لهوبه ليس له اي علاقة بالطبيعة البشرية لذلك لا ينبغي أن يسميها هكذا.
يجب أن يلقي هوبه نظرة على ما كتبه لودفيغ فون مايزس و هو نفسه الذي أعجب به هوبه، يقول مايزس: "ان اللاسلطوية لا يمكن ممارستها إلا في عالم من الملائكة و القديسيين" و أقتبس من كتابه الليبرالية- في التقليد الكلاسيكي : " الليبرالية ليست أناركية، و ليس لها أي علاقة بالفوضوية على الإطلاق. يفهم الليبرالي تمام أنه بدون اللجوء إلى الإكراه، فأن وجود المجتمع سيكون معرضا للخطر و إن قواعد السلوك التي يلزم إتباعها لضمان التعاون الإنساني السلمي يجب أن تواجه تهديد القوة إذا كان صرح المجتمع بأكمله بإستمرار تحت رحمة أي من أعضائه. يجب أن يكون المرء في وضع يسمح له بإجبار الشخص الذي لن يحترم حياة الآخرين أو صحتهم أو حريتهم الشخصية أو ممتلكاتهم الخاصة على الإذعان لقواعد الحياة في المجتمع. هذه هي الوظيفة التي تسندها العقيدة الليبرالية إلى الدولة: حماية الملكية و الحرية و السلام ". لماذا يصعب على هوبه قبول هذه الرؤية الميسزية؟؟؟؟

يحب هوبه تبسيط المشكلات الموجودة و تشويهها حتى تتناسب مع نظرته المحدودة للعالم. يمكن للمرء أن يطلق على هذا الأمر خدعة منهجية ، لكنها حيلة رخيصة حقًا ، و يسهل فهمها. اسمحوا لي أن أقدم لكم مثالاً آخر لاستراتيجية هوبه للتعامل مع مشاكل العالم الحقيقي. يختصر هوبه جميع النزاعات المحتملة بين الأفراد إلى صراعات على الممتلكات. بعبارة أخرى: العنصر السياسي للنزاعات غير موجود في عالم هوبه ، مما يعني أنه يمكن تسوية كل شيء من خلال الاتفاقات التعاقدية الخاصة. لكن هل هذا صحيح؟ فكر في الصراعات الثقافية و الدينية على سبيل المثال... الصراع بين الإسلاميين المتشددين و الغرب ليس صراعا بين الدول. القاعدة مثال جيد على حركة شعبية غير حكومية - رغم أنها من أسوأ أنواع الحركات. فلماذا يجب أن يتوقف الإرهابيون عن كره الغرب إذا اختفت سوريا و الولايات المتحدة على حد سواء ، لكن لا يزال يتم بيع كوكاكولا و ملابس النساء المثيرات في العالم الإسلامي؟ و لا يزال الإسلاميون يدينون ذلك لأنهم يعتقدون أنه يتعارض مع أمر الله. إذن ما الذي يعنيه هذا لتأكيد هوبه أن جميع النزاعات هي صراعات حول حقوق الملكية؟
ببساطة لن يكون صحيحًا إلا إذا كانت جميع النزاعات السياسية صراعات حول حقوق الملكية ، مما يعني أيضًا أن جميع النزاعات السياسية ستكون في الواقع صراعات فردية. لكن ما هو الصراع السياسي؟ يُعرَّف الصراع السياسي بأنه صراع بين مجموعات من الناس و هذا أكثر من مجرد صراع أفراد. بالطبع ، الجماعات لا تعمل - الأفراد فقط هم من يفعلون. و لكن لا يتبع ذلك أن الجماعات غير ذات صلة، إنها مهمة مثل الدولة اليوم، لأن الشعور بالانتماء إلى مجموعة سيوجه سلوك الأفراد بطريقة تجعل من المستحيل التعامل معها على أنها تضارب محض في حقوق الملكية.

يمكن للمرء بالطبع أن يجادل بأنه من الممكن نظريًا اختزال كل نزاع محتمل إلى نزاع على الملكية. لماذا لا يسمح الإسلاميون الأفغان لكل امرأة أن تقرر ما إذا كانت تريد ارتداء البرقع أو بلوزة بدون أكمام؟ بعد كل شيء ، إنها حياة المرأة و ممتلكاتها، لكن من الناحية العملية ، لن يتأثر الإسلامي بكلمات هوبه الحكيمة بل يستمر في التهديد برجم المرأة إذا لم تفعل ما يريد. لا يمكن الحد من جميع النزاعات إلى نزاعات الملكية إلا إذا اتفق المتورطون على أنه ينبغي حلها كنزاعات ملكية. لكن من الناحية العملية هذا غير محتمل. لماذا يجب على الإسلامي أن يلعب بقواعد هانز هيرمان هوبه على أي حال؟ و لماذا لا يهدد المرأة بالرجم بعد أن ألغى هوبه للتو الشرطة التي يمكن أن تمنعه ​​من القيام بذلك؟!!

إذن كيف يتعامل هوبه مع الصراعات الثقافية و الجماعية في نموذجه؟ من ناحية أخرى ، لديهم دور يلعبونه في عالم بدون دولة. بعد كل شيء ، يمكن لمثل هذه المجموعات فقط تقديم نوع من التوجيه للأفراد ، و الذي يحتاجه البشر غالبًا، و يقر هوبه صراحةً بهذه الحقيقة، و لكن بمجرد أن يكون هناك صراع بين المجموعات ، تختفي فجأة كل هذه المجموعات في نظرية هوبه و يتبقى لنا عالم مليء بالأفراد، و في مثل هذا العالم لن يكون هناك أي شيء سياسي أيضًا. يقول هوبه أساسًا: "نعم ، ستكون هناك عائلات و نوادي و ديانات و هم يقومون بعمل رائع في مجتمع ذي نظام طبيعي ، لكن في حالات النزاع هم محايدون و لا يلعبون دورًا". لذا فإن الصراعات في عالم هوبه ستكون دائمًا فردية و ليست جماعية. لكن هذا ليس مرجحًا جدًا. على المرء فقط أن ينظر إلى الطريقة التي تحب بها الأديان و الكنائس الانخراط في المناقشات السياسية.

لكن من أين يأتي تضارب هوبه؟ مرة أخرى ، أعتقد أن السبب هو أن مثل هذه المشكلات ببساطة لا تتناسب مع مدينة هوبه الفوضوية ، و بالتالي فهو يفضل عدم التعامل معها. يبقى خطئه الأساسي أنه لا يمكنك اختزال كل شيء في صراعات فردية ، فالسياسة لا تختفي مع الدولة و العنف و محاربة الجريمة لا يمكن خصخصتها بالكامل. و كيف تريد خصخصة القنابل النووية على أي حال؟؟؟

تعتبر نظرية هوبه بمثابة وداع للواقع ، لكنها أكثر من كونها وداع��ا لليبرالية كلاسيك
Displaying 1 - 30 of 190 reviews

Can't find what you're looking for?

Get help and learn more about the design.
\ No newline at end of file diff --git a/src/book-sources/goodreads/test/search.html b/src/book-sources/goodreads/test/search.html new file mode 100644 index 0000000..cdb441a --- /dev/null +++ b/src/book-sources/goodreads/test/search.html @@ -0,0 +1,1039 @@ + + + + Search results for "democracy the god that failed" (showing 1-4 of 4 books) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + +
+ + + +
+ + + + +
+
+ +
+ +
+ +
+ +
+ + + + +
+ + +
+

+ Search +

+ + + +
+
+ Books + Groups + Quotes + People + Listopia +
+
+ + +

Page 1 of about 4 results (0.07 seconds)

+ + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + Democracy: The God That Failed +
+
+ by + + +
+
+ + 4.17 avg rating — 2,150 ratings + — + published + 2001 + — + 33 editions + +
+ + + + +
+
+
+
+ + + + + + + + + + + + + +
+ +
+ +
+
+ + + + + + + + + + +
+ + +
+
    +
  • +
  • +
  • +
  • +
  • +
  • +
+
+
+ +
+ +
Rate this book
+
Clear rating
+ +
+ +
+ +
+
+
+
+ + +
+ +
+
+ + Liberal Capitalist Democrac... +
+
+ by + + +
+
+ + 4.67 avg rating — 6 ratings + — + 3 editions + +
+ + + + +
+
+
+
+ + + + + + + + + + + + + +
+ +
+ +
+
+ + + + + + + + + + +
+ + +
+ +
+ +
Rate this book
+
Clear rating
+ +
+ +
+ +
+
+
+
+ + +
+ +
+
+ + Articles on Books about Dem... +
+
+ by + + +
+
+ + 0.00 avg rating — 0 ratings + — + published + 2011 + — + 1 edition + +
+ + + + +
+
+
+
+ + + + + + + + + + + + + +
+ +
+ +
+
+ + + + + + + + + + +
+ + +
+ +
+ +
Rate this book
+
Clear rating
+ +
+ +
+ +
+
+
+
+ + +
+ +
+
+ + Democracy-The God That Fail... +
+
+ by + + +
+
+ + 0.00 avg rating — 0 ratings + — + 1 edition + +
+ + + + +
+
+
+
+ + + + + + + + + + + + + +
+ +
+ +
+
+ + + + + + + + + + +
+ + +
+ +
+ +
Rate this book
+
Clear rating
+ +
+ +
+ +
+
+
+
+ + +
+ +
+ + +
+ +
+ + +
+

+ + + +

+
+ +
+
+ + Import books +
+ +
+
+ +
+ +
+ non-fiction (15,673,998)
+ history (7,975,673)
+ philosophy (3,493,507)
+ politics (2,338,483)
+ sociology (827,674)
+ economics (813,682)
+ cultural (758,024)
+ society (549,709)
+ social (441,144)
+ political-science (264,334)
+ More shelves... +
+ + + + + + + + +
+ +
+
+
+
+
+ + +
+ + + + + + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/core/Bot.ts b/src/core/Bot.ts new file mode 100644 index 0000000..de49b9f --- /dev/null +++ b/src/core/Bot.ts @@ -0,0 +1,7 @@ +import { Client, REST } from "discord.js"; + +export type Bot = { + client: Client; + clientId: string; + rest: REST; +}; diff --git a/src/core/Command.ts b/src/core/Command.ts new file mode 100644 index 0000000..a54d5f3 --- /dev/null +++ b/src/core/Command.ts @@ -0,0 +1,6 @@ +import { ChatInputCommandInteraction, SharedSlashCommand } from "discord.js"; + +export type Command = { + slashCommand: SharedSlashCommand; + run(interaction: ChatInputCommandInteraction): Promise; +}; diff --git a/src/core/CommandHandler.ts b/src/core/CommandHandler.ts new file mode 100644 index 0000000..52ad052 --- /dev/null +++ b/src/core/CommandHandler.ts @@ -0,0 +1,5 @@ +import { Command } from "./Command"; + +export type CommandHandler = { + registerCommand(command: Command): Promise; +}; diff --git a/src/core/Module.ts b/src/core/Module.ts new file mode 100644 index 0000000..9050b3a --- /dev/null +++ b/src/core/Module.ts @@ -0,0 +1,6 @@ +import { Bot } from "./Bot"; +import { CommandHandler } from "./CommandHandler"; + +export type Module = { + init(input: { bot: Bot; commandHandler: CommandHandler }): Promise; +}; diff --git a/src/core/UserError.ts b/src/core/UserError.ts new file mode 100644 index 0000000..3ac0845 --- /dev/null +++ b/src/core/UserError.ts @@ -0,0 +1 @@ +export class UserError extends Error {} diff --git a/src/core/create-bot.ts b/src/core/create-bot.ts new file mode 100644 index 0000000..6eb355a --- /dev/null +++ b/src/core/create-bot.ts @@ -0,0 +1,27 @@ +import "dotenv/config"; +import { Client, Events, GatewayIntentBits, REST } from "discord.js"; +import { Bot } from "./Bot"; + +const createClient = ({ + token, + clientId, +}: { + token: string; + clientId: string; +}): Bot => { + const client = new Client({ intents: [GatewayIntentBits.Guilds] }); + + client.once(Events.ClientReady, (readyClient) => { + console.log(`Ready! Logged in as ${readyClient.user.tag}`); + }); + + client.login(token); + + return { + client, + clientId, + rest: new REST({ version: "10" }).setToken(token), + }; +}; + +export default createClient; diff --git a/src/core/create-command-handler.ts b/src/core/create-command-handler.ts new file mode 100644 index 0000000..90dede2 --- /dev/null +++ b/src/core/create-command-handler.ts @@ -0,0 +1,84 @@ +import { Command } from "./Command"; +import { + ChatInputCommandInteraction, + Events, + Interaction, + Routes, +} from "discord.js"; +import { Bot } from "./Bot"; +import { CommandHandler } from "./CommandHandler"; +import { UserError } from "./UserError"; + +const registerCommands = async ( + bot: Bot, + commands: Record, +) => { + try { + const commandList = Object.values(commands).map((command) => + command.slashCommand.toJSON(), + ); + + await bot.rest.put(Routes.applicationCommands(bot.clientId), { + body: commandList, + }); + } catch (error) { + console.error(error); + console.error(JSON.stringify(error)); + } +}; + +const executeCommand = async ( + command: Command, + interaction: ChatInputCommandInteraction, +) => { + try { + await command.run(interaction); + } catch (error) { + console.error(`Error executing command ${command.slashCommand.name}`); + console.error(error); + console.error(JSON.stringify(error)); + const message = + error instanceof UserError + ? `There was an error executing the command: ${error.message}` + : "There was an error executing the command"; + if (interaction.replied || interaction.deferred) { + await interaction.followUp({ + content: message, + ephemeral: true, + }); + } else { + await interaction.reply({ + content: message, + ephemeral: true, + }); + } + } +}; + +const createCommandHandler = (bot: Bot): CommandHandler => { + const commands: Record = {}; + + bot.client.on(Events.InteractionCreate, async (interaction: Interaction) => { + if (!interaction.isChatInputCommand()) return; + + const commandName = interaction.commandName; + const command = commands[commandName]; + + if (!command) { + console.error(`Command ${commandName} not found`); + return; + } + + await executeCommand(command, interaction); + }); + + return { + async registerCommand(command: Command) { + console.log(`Registering command ${command.slashCommand.name}`); + commands[command.slashCommand.name] = command; + await registerCommands(bot, commands); + }, + }; +}; + +export default createCommandHandler; diff --git a/src/core/resolve-envars.test.js b/src/core/resolve-envars.test.js new file mode 100644 index 0000000..8b9cca0 --- /dev/null +++ b/src/core/resolve-envars.test.js @@ -0,0 +1,52 @@ +import resolveEnvars from "./resolve-envars"; +import { describe, it, vi, beforeEach, expect } from "vitest"; + +describe(`resolve envars`, () => { + beforeEach(() => { + vi.unstubAllEnvs(); + }); + + describe(`Given the environment variables exist`, () => { + it(`Returns the values`, () => { + vi.stubEnv("VAR1", "value1"); + vi.stubEnv("VAR2", "value2"); + const { var1, var2 } = resolveEnvars({ + var1: "VAR1", + var2: "VAR2", + }); + expect(var1).toEqual("value1"); + expect(var2).toEqual("value2"); + }); + }); + + describe(`Given an environment variable doesn't exist`, () => { + it(`Throws an error`, () => { + vi.stubEnv("VAR1", "value1"); + try { + resolveEnvars({ + var1: "VAR1", + var2: "VAR2", + }); + } catch (error) { + expect(error.message).toEqual("Environment variables not set: var2"); + } + expect.assertions(1); + }); + }); + + describe(`Given multiple variables don't exist`, () => { + it(`Throws an error with all variable names in the message`, () => { + try { + resolveEnvars({ + var1: "VAR1", + var2: "VAR2", + }); + } catch (error) { + expect(error.message).toEqual( + "Environment variables not set: var1, var2", + ); + } + expect.assertions(1); + }); + }); +}); diff --git a/src/core/resolve-envars.ts b/src/core/resolve-envars.ts new file mode 100644 index 0000000..ffc79b4 --- /dev/null +++ b/src/core/resolve-envars.ts @@ -0,0 +1,23 @@ +const objectMap = (obj, fn) => + Object.fromEntries(Object.entries(obj).map(([k, v]) => [k, fn(v, k)])); + +const objectFilter = (obj, fn) => + Object.fromEntries(Object.entries(obj).filter(([k, v]) => fn(v, k))); + +const resolveEnvars = ( + vars: Record, +): Record => { + const resolvedValues = objectMap(vars, (name: string) => process.env[name]); + + const missingVars = Object.keys( + objectFilter(resolvedValues, (value: string) => value === undefined), + ); + + if (missingVars.length > 0) { + throw new Error(`Environment variables not set: ${missingVars.join(", ")}`); + } + + return resolvedValues; +}; + +export default resolveEnvars; diff --git a/src/index.ts b/src/index.ts index c9cd42f..6345e38 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1 +1,15 @@ -console.log('hello world') \ No newline at end of file +import "dotenv/config"; +import createClient from "./core/create-bot"; +import createCommandHandler from "./core/create-command-handler"; +import resolveEnvars from "./core/resolve-envars"; +import Books from "./modules/books"; + +const { botToken, clientId } = resolveEnvars({ + botToken: "BOT_TOKEN", + clientId: "BOT_CLIENT_ID", +}); + +const bot = createClient({ token: botToken, clientId }); +const commandHandler = createCommandHandler(bot); + +Books.init({ bot, commandHandler }); diff --git a/src/modules/books/booksearch.ts b/src/modules/books/booksearch.ts new file mode 100644 index 0000000..c14b260 --- /dev/null +++ b/src/modules/books/booksearch.ts @@ -0,0 +1,49 @@ +import { Command } from "../../core/Command"; +import { + ActionRow, + ActionRowBuilder, + Embed, + EmbedBuilder, + SlashCommandBuilder, + StringSelectMenuBuilder, + StringSelectMenuOptionBuilder, + User, +} from "discord.js"; + +// TODO inject these +import goodreads from "../../book-sources/goodreads"; +import { BookInfo } from "../../book-sources/BookInfo"; +import { UserError } from "../../core/UserError"; + +const booksearch: Command = { + slashCommand: new SlashCommandBuilder() + .setName("booksearch") + .setDescription("Search for a book") + .addStringOption((option) => + option.setName("title").setDescription("Book title").setRequired(true), + ), + + async run(interaction) { + await interaction.deferReply(); + + const title = interaction.options.getString("title"); + const results = await goodreads.search(title); + // TODO limit number of results + + if (results.length == 0) { + await interaction.reply("No results found"); + return; + } + + const message = results + .map( + (book) => + `**${book.title}** - *${book.author}* (${book.source}#${book.id})`, + ) + .join("\n"); + + await interaction.editReply(message); + }, +}; + +export default booksearch; diff --git a/src/modules/books/getbook.ts b/src/modules/books/getbook.ts new file mode 100644 index 0000000..98e8196 --- /dev/null +++ b/src/modules/books/getbook.ts @@ -0,0 +1,34 @@ +import { Command } from "../../core/Command"; +import { EmbedBuilder, SlashCommandBuilder } from "discord.js"; + +// TODO inject these +import goodreads from "../../book-sources/goodreads"; + +const getbook: Command = { + slashCommand: new SlashCommandBuilder() + .setName("getbook") + .setDescription("Lookup a book") + .addStringOption((option) => + option.setName("id").setDescription("Book id").setRequired(true), + ), + + async run(interaction) { + await interaction.deferReply(); + + // TODO this should use a particular source + const id = interaction.options.getString("id").split("#")[1]; + console.log(id); + const book = await goodreads.getBook(id); + console.log("got book"); + + const embed = new EmbedBuilder() + .setTitle(book.title) + .setDescription(book.description) + .setAuthor({ name: book.author }) + .setURL(book.url); + + await interaction.editReply({ embeds: [embed] }); + }, +}; + +export default getbook; diff --git a/src/modules/books/index.ts b/src/modules/books/index.ts new file mode 100644 index 0000000..e9ba967 --- /dev/null +++ b/src/modules/books/index.ts @@ -0,0 +1,12 @@ +import booksearch from "./booksearch"; +import { Module } from "../../core/Module"; +import getbook from "./getbook"; + +const Books: Module = { + async init({ commandHandler }) { + await commandHandler.registerCommand(booksearch); + await commandHandler.registerCommand(getbook); + }, +}; + +export default Books;