On Arch Linux.
sudo pacman -S bitcoin-daemon tor
sudo systemctl enable tor.service
sudo systemctl start tor.serviceCreate /etc/systemd/system/bitcoin.service.
| # Get every month (almost) open price. | |
| # Bash, curl and jq are required. | |
| # Modify YEAR, ID, +09:00 and jpy for yourself. | |
| YEAR=2023 | |
| ID=bitcoin | |
| for MONTH in $(seq -w 1 12); do | |
| FROM=$(date --date="${YEAR}-${MONTH}-01T00:00:00+09:00" +"%s") | |
| TO=$( date --date="${YEAR}-${MONTH}-01T01:00:00+09:00" +"%s") | |
| FILENAME=${YEAR}-${MONTH}.json |
| On Polygon network only | |
| Contract address: `0xc8f48E2b873111aA820463915b3a637302171d61` | |
| Total supply: 5,000,000,000,000,000 | |
| Total supply (ja): 5000兆 | |
| QuickSwap | |
| MATTN-MATIC pair: https://quickswap.exchange/#/swap?swapIndex=0¤cy0=ETH¤cy1=0xc8f48E2b873111aA820463915b3a637302171d61 |
| pragma solidity ^0.6.0; | |
| interface tokenRecipient { function receiveApproval(address _from, uint256 _value, address _token, bytes calldata _extraData) external; } | |
| contract TokenERC20 { | |
| string public name; | |
| string public symbol; | |
| uint8 public decimals = 18; | |
| uint256 public totalSupply; |
| body { | |
| background-color: #202732; | |
| color: #c7c7c7; | |
| } | |
| a { | |
| color: #7770f0; | |
| } | |
| a:visited { | |
| color: #aaaaee; | |
| } |
On Arch Linux.
sudo pacman -S bitcoin-daemon tor
sudo systemctl enable tor.service
sudo systemctl start tor.serviceCreate /etc/systemd/system/bitcoin.service.
| // ka's nostr backup experimental code version 20230704 | |
| const WebSocketClient = require("websocket").client; | |
| const client = new WebSocketClient(); | |
| client.on('connectFailed', function(error) { | |
| console.log('Connect Error: ' + error.toString()); | |
| }); |
| import * as fs from "fs"; | |
| import * as path from "path"; | |
| import { parse } from "csv-parse/sync"; | |
| import * as crypto from "crypto"; | |
| import * as http from "http"; | |
| import * as https from "https"; | |
| const filepath = path.join(__dirname, "aikatsup20230422.csv"); | |
| const expected_sha256 = | |
| "14648f557a2ad394b513c0800afd3b1f4d1ee23964f501820a392cb6779a9a19"; |
| const [keyword, type] = ["大空あかり", "キャラ"]; | |
| // const [keyword, type] = ["穏やかじゃない", "セリフ"] | |
| import * as fs from "fs"; | |
| import * as path from "path"; | |
| import { parse } from "csv-parse/sync"; | |
| const source = path.join(__dirname, "aikatsup20230422.csv"); | |
| const buffer = fs.readFileSync(source); | |
| const rows = parse(buffer, { relax_column_count: true }) as string[][]; |
| 星宮いちご | |
| 霧矢あおい | |
| 紫吹蘭 | |
| 有栖川おとめ | |
| 藤堂ユリカ | |
| 北大路さくら | |
| 一ノ瀬かえで | |
| 神谷しおん | |
| 音城セイラ | |
| 冴草きい |
| require "digest" | |
| require "open-uri" | |
| FILEPATH = "./aikatsup20230422.csv" | |
| EXPECTED_SHA256 = "14648f557a2ad394b513c0800afd3b1f4d1ee23964f501820a392cb6779a9a19" | |
| def download_from_github_and_succeeded | |
| URI.open("https://raw.githubusercontent.com/kaosf/AikatsuDOWN/master/data/aikatsup20230422.csv") do |file| | |
| File.open(FILEPATH, 'wb') do |output| | |
| output.write(file.read) |