はじめに
最近、Qiitadon はじめたので、bot を作って「もふもふな記念日」に自動で toot しようと思いました。
- Qiita/Qiitadon は、(基本的に)プログラマ/エンジニアのためのサービスです。
- プログラマ/エンジニアはストレスが多いため、癒しが必要です。
- もふもふは癒しです
なんという、すきのない三段論法! てっぺきな理論武装!
犬猫がいると仕事の効率も上がるという話もありますし!
記念日リスト
まず、記念日を調べます。
最終的には cron レベルの設定で簡単に toot したいので、基本は月日が固定されている、1日だけのものに絞りたいと思います。
(n月の第n何曜日、とかだとちょっと面倒なので無視。あとは「なんとか週間」とか、年によって日付が変わるものも同様)
でもリストには載せるかも。
基本、モフモフな記念日のみが対象(ピヨピヨな子たちも、モフモフに含む)。
一部、ゾウとかカバとかサイとか、本当にモフモフなのか微妙な子たちもいるけど。
1月14日
タロとジロの日
- 由来:1959(昭和34)年1月14日に、(南極に置き去りにされた)タロとジロの生存が確認されたことによるもの。
- 別名:「愛と希望と勇気の日」とも言うようです。
- 制定年:
- 制定元:
1月21日
リスの日(アメリカ)
- 正式名:Squirrel Appreciation Day
- 由来:
- 目的:身近にいるリスが、無事に冬を越せるように、リスさんについて理解を深めよう
- 制定年:2001年
- 制定元:アメリカのノースカロライナ州にある、野生動物のリハビリを行っている自然保護施設のスタッフが提唱(らしい)
1月31日
国際シマウマの日
- 正式名:International Zebra Day
- 由来:
- 制定年:
- 制定元:
2月2日
世界ダチョウの日
- 正式名:World Ostrich Day
- 由来:ダチョウが2本のつま先をもつ唯一の鳥であるため(他の鳥は3~4本のつま先を持つ)
- 目的:ダチョウの魅力や野生下の現状を広めるため
- 制定年:2020年
- 制定元:ニュージーランドのオークランド動物園の飼育員が発起人
そり犬の日(アメリカ)
- 正式名:Sled Dog Day
- 由来:
- 目的:
- 制定年:
- 制定元:
2月5日
ピカチュウの日
- 由来:『ポケットモンスター』シリーズのキャラクター、ピカチュウのポケモン全国図鑑ナンバー「No.025」から
- 目的:
- 制定年:
- 制定元:ファンの間で記念日化していたもの。その後、2020年にポケモン情報局(公式Twitter)がツイートで取り上げられたことから、事実上の公認記念日とみなす人も多い。
2月8日
ニワトリの日
- 由来:語呂合わせ
- 目的:ふだん何気なく食べている鶏肉も、命をいただいているという意識を持ち、鶏に感謝する日
- 制定年:
- 制定元:福岡県福岡市に本社を置き、九州北部で銘柄鶏「華味鳥」(はなみどり)を育てているトリゼンフーズ株式会社
一般財団法人日本記念日協会の認定記念日。
(登録上はひらがなで「にわとりの日」)
2月9日
フクロウの日
- 由来:「ふ(2)く(9)」の語呂合わせ
- 目的:
- 制定年:
- 制定元:
このほか、毎月26日もフクロウの日らしい。
2月15日
世界カバの日
- 正式名:World Hippo Day
- 由来:
- 目的:
- 制定年:
- 制定元:
2月17日
猫の日(イタリア)
- 由来:読者投票により。詳細後述。
- 目的:
- 制定年:1990年
- 制定元:イタリアの雑誌「Tuttogatto」
ポーランドなど、ヨーロッパのいくつかの国も同じ2月17日を猫の日としている。
由来の説明。一部推測あり。
ローマ数字で 17
は XVII
。並べ替えると VIXI
(昔のローマ数字は「減算則」がなかったので並べ替えても意味は変わらない)。これはラテン語で「生きていた」(過去形)になるらしい。
英語では「猫には9つの命がある(A cat has nine lives.)」というけど、イタリアやスペインあたりでは7つらしい。
例えば「七転び八起き」的なことわざとして使われるみたい。
"avere sette vite come i gatti" あるいは "avere sette spiriti come i gatti" みたいに言うのかな。
そこの連想から、17日が猫に関連付けられているもよう。なぜ2月なのかは不明。
2月20日
あなたのペットを愛する日(アメリカ)
- 正式名:National Love Your Pet Day
- 由来:
- 目的:
- 制定年:
- 制定元:
2月22日
猫の日(日本)
- 由来:「にゃん(2)にゃん(2)にゃん(2)」の語呂合わせ
- 目的:猫と一緒に暮らせる幸せに感謝し、猫とともにこの喜びをかみしめる記念日
- 制定年:1987年
- 制定元:「猫の日実行委員会」と一般社団法人ペットフード協会(ただし、一般財団法人日本記念日協会の記載だと「猫の日 制定 委員会」とある)
犬と散歩する日(アメリカ)
- 正式名:National Walking the Dog Day
- 由来:
- 目的:
- 制定年:
- 制定元:
2月23日
犬ビスケット感謝デー(アメリカ)
- 正式名:Dog Biscuit Appreciation Day
- 由来:
- 目的:
- 制定年:
- 制定元:
2月27日
Pokémon Day
- 由来:「ポケモン」の最初のゲームソフトである『ポケットモンスター 赤・緑』の発売日(1996年2月27日)
- 目的:
- 制定年:
- 制定元:「ポケットモンスター」(通称・ポケモン)のブランドマネジメントを行う株式会社ポケモン
一般財団法人日本記念日協会の認定記念日。
国際ホッキョクグマの日
- 正式名:International Polar Bear Day
- 由来:
- 目的:ホッキョクグマから環境問題を考える日
- 制定年:
- 制定元:
2月その他
世界センザンコウの日
- 日付:2月第3土曜日(推測)
- 正式名:World Pangolin Day
- 由来:
- 目的:センザンコウは密輸されることが多く、センザンコウの危機について広く伝え、保全対策を進めるため
- 制定年:
- 制定元:
3月1日
猫の日(ロシア)
- 由来:
- 目的:
- 制定年:2004年
- 制定元:モスクワの猫博物館
豚の日(アメリカ)
- 正式名:National Pig Day
- 由来:
- 目的:一般には認知されていないが、人類にとって最も聡明で飼い慣らされた動物の一種である豚の正当な地位を認める
- 制定年:1972年
- 制定元:テキサス州在住の教師エレン・スタンリーとノースカロライナ州のメアリー・リン・レイブ姉妹が提案
3月2日
ミニブタの日(日本)
- 由来:「み(3)に(2)」の語呂合わせ
- 目的:癒し系のペットとして「一家に1頭を」とミニブタの飼育を普及させるため
- 制定年:2002年
- 制定元:日本ペットミニブタ普及協会
3月3日
ウサギの日
- 由来:耳の日からウザギの連想
- 目的:
- 制定年:
- 制定元:野良の記念日と思われる
世界野生動物の日
- 正式名:Wold WildLife Day
- 由来:「絶滅のおそれのある野生動植物の種の国際取引に関する条約」(通称ワシントン条約)の採択日(1973年3月3日)
- 目的:経済的、文化的に重要な野生動植物の保護の取組の強化を目的
- 制定年:2013年12月20日
- 制定元:第68回国際連合総会において決定された国際日
3月11日
パンダ発見の日
1869年のこの日にジャイアントパンダをフランス人(つまり欧米世界)が発見した
3月20日
世界スズメの日
- 正式名:World Sparrow Day
- 由来:
- 目的:
- 制定年:
- 制定元:Nature Forever Society (NFS)
3月22日
さくらねこの日
- 由来:さくら(3)ねこ・にゃん(2)・にゃん(2)の語呂合わせ
- 目的:野生ネコの不妊手術をして、耳先を桜の花びらのようにカットした「さくらねこ」のことを広めるため
- 制定年:2019年
- 制定元:公益財団法人どうぶつ基金
一般財団法人日本記念日協会の認定記念日。
3月23日
子犬の日(アメリカ)
- 正式名:National Puppy Day
- 由来:
- 目的:子犬が私たちの生活にもたらす魔法と無条件の愛を祝う
- 制定年:2006年
- 制定元:
4月3日
シーサーの日(沖縄)
- 由来:「シー(4)サー(3)」の語呂合わせ
- 目的:シーサーを全国に広げよう
- 制定年:2002年
- 制定元:那覇市の壺屋(つぼや)
4月4日
獅子の日(日本)
- 由来:「し(4)し(4)」の語呂合わせ
- 目的:
- 制定年:
- 制定元:野良の記念日
猫の日(台湾)
- 由来:
- 目的:
- 制定年:
- 制定元:愛猫族連誼会
4月8日
忠犬ハチ公の日
- 由来:ハチ公の慰霊祭が1936年から4月8日に行われているため(命日は1935年3月8日)
- 目的:
- 制定年:
- 制定元:忠犬ハチ公銅像及び秋田犬群像維持会
4月10日
バード・デー
1947年に制定。その後、北の地方の一部はまだ積雪があるという理由で、のちに1ヶ月ずらし、5月10日に変更。
wikipedia - 愛鳥週間
4月11日
ペットの日(アメリカ)
- 由来:
- 目的:
- 制定年:
- 制定元:
4月12日
世界ハムスターの日
- 正式名:World Hamster Day
- 由来:エルサレムのヘブライ大学の動物学者兼教授であるIsrael Aharoniが、トウモロコシ畑でシリアのハムスターを探すために遠征に出かけたことに由来(1930年4月12日)
- 目的:
- 制定年:
- 制定元:Hamster Club
4月15日
イリオモテヤマネコの日
- 由来:新種と発表された日(1965年4月15日)
- 目的:ヤマネコと共存しながら地域を発展させることをより明確に意思表示し啓発を図る
- 制定年:2015年
- 制定元:沖縄県竹富町
4月23日
国際マヌルネコの日
- 正式名:International Pallas’s cat day
- 由来:ユーラシア地域動物園水族館協会の提案でこの日の前後の週に野生下での繁殖が多い事から
- 目的:
- 制定年:2019年
- 制定元:Pallas’s cat International Conservation Alliance(おそらく)
4月25日
世界ペンギンの日
- 正式名:World Penguin Day
- 由来:このころに毎年南極にあるアメリカのマクマード基地にアデリーペンギンが姿を見せることから
- 目的:
- 制定年:
- 制定元:
4月27日
世界バクの日
- 由来:
- 目的:4種のバク生息地の減少などにより絶滅が危惧される現状を多くの方に伝え保護すること
- 制定年:
- 制定元:
4月28日
象の日(日本)
- 由来:1729年(享保14年)4月28日にベトナムからの献上品である象が中御門天皇に拝謁したことから
- 目的:
- 制定年:
- 制定元:
象さんを「もふもふ」とするかどうかは難しいですが…。
4月その他
国際盲導犬の日
- 日付:4月最終水曜日
- 由来:
- 目的:盲導犬の普及、一般からの理解を目指すこと
- 制定年:1989年
- 制定元:
5月1日
純血種犬の日(アメリカ)
- 正式名:National Purebred Dog Day
- 由来:
- 目的:
- 制定年:
- 制定元:
5月9日
悟空の日
- 由来:「ご(5)くう(9)」の語呂合わせ
- 目的:鳥山明氏原作のコミック「ドラゴンボール」のアニメ作品である「ドラゴンボールZ」の面白さと、その主人公の「悟空」というキャラクターの魅力をさらに多くの方に知ってもらう
- 制定年:2015年
- 制定元:『ドラゴンボールZ 復活の「F」』の配給会社である東映株式会社
一般財団法人日本記念日協会の認定記念日。
(もふもふ、か?)
5月13日
愛犬の日
- 由来:戦後に創刊された「愛犬の友」という雑誌を出版していた会社「誠文堂新光社」(現在の誠文堂新光社とは経営母体が異なる)の社長が、昭和31年5月13日に愛犬に関するイベントを行っていたことから
- 目的:
- 制定年:
- 制定元:
5月22日
補助犬の日(日本)
- 由来:身体障害者補助犬法が成立した日(2002年5月22日)
- 目的:
- 制定年:
- 制定元:
ちなみに10月1日も「補助犬の日」
5月その他
世界ビントロングの日
- 日付:5月第2土曜
- 正式名:World Binturong Day
- 由来:
- 目的:ビントロングの理解を深める事
- 制定年:2015年
- 制定元:フランスの団体「Arctictis Binturong Conservation」
ビントロングとは、ジャコウネコ科の動物の一種で、別名「クマネコ」「クマジャコウネコ」「ベアキャット(英語)」とも呼ばれる。
世界カワウソの日
- 日付:5月最終水曜日
- 正式名:World Otter Day
- 由来:
- 目的:世界に生息するカワウソの仲間13種の現状や保全について考えること
- 制定年:
- 制定元:イギリスのNPO団体 International Otter Survival Fund (ISOF)
6月4日
猫をハグする日(アメリカ)
- 由来:National Hug Your Cat Day
- 目的:
- 制定年:
- 制定元:
6月6日
ひつじの日(日本)
- 由来:6がひつじの角の形に似ているところから
- 目的:
- 制定年:
- 制定元:
6月15日
オウムとインコの日
- 由来:「オウム(06)インコ(15)」の語呂合わせ
- 目的:
- 制定年:
- 制定元:
6月21日
世界キリンの日
- 由来:一番昼が長い夏至と、首の長いキリンから
- 目的:
- 制定年:2014年
- 制定元:キリン保全財団 Giraffe Conservation Foundation (GCF)
夏至が違う年でも、6月21日が世界キリンの日らしい。
6月22日
世界ラクダの日
- 正式名:World Camel Day
- 由来:
- 目的:
- 制定年:
- 制定元:
6月その他
飼い犬を職場に連れて行こうの日(イギリス・アメリカ)
- 正式名:Bring Your Dog to Work Day(イギリス)
- 正式名:Take Your Dog to Work Day(アメリカ)
- 日付:父の日の翌週の金曜日
- 由来:
- 目的:
- 制定年:1996年(イギリス)、1999年(アメリカ)
- 制定元:
ちなみに父の日は日本もイギリス・アメリカも6月第3日曜日
以下のように書いてあるので、登録商標のようです。
Take Your Dog To Work Day and Take Your Pet To Work Week are registered trademarks of Pet Sitters nternational, Inc.
7月1日
ファシリティドッグの日
- 由来:「ファシリティドッグ」が日本ではじめて静岡県立こども病院で導入された日から(2010年7月1日)
- 目的:ファシリティドッグの存在と意義を広めること
- 制定年:2016年
- 制定元:認定特定非営利活動法人「シャイン・オン・キッズ」
ファシリティドッグ(facility dog)とは、病院などの医療施設に常勤して、入院中の患者やその家族に心の安らぎを与える役割を担う犬のこと。
一般財団法人日本記念日協会の認定記念日
7月2日
世界ヤマアラシの日
- 正式名:World Porcupine Day
- 由来:
- 目的:
- 制定年:
- 制定元:
もしかしたら7月3日なのかも。
7月14日
世界チンパンジーの日
- 由来:野生チンパンジーの研究のため初めてゴンベに足を踏み入れた日(1960年7月14日)
- 目的:ヒトの進化の隣人であるチンパンジーを野生、飼育下共に考える日
- 制定年:
- 制定元:
7月15日
ペットの火災安全の日(アメリカ)
- 正式名:Pet Fire Safety Day
- 由来:
- 目的:飼い主に、火災などの火のトラブルのうち、少なくはない件数が、愛犬や愛猫そしてその他のペットによって引き起こされていることを認識してもらう
- 制定年:2009年
- 制定元:アメリカン・ケネル・クラブ(AKC:The American Kennel Club)とセキュリティ会社の(The ADT Corporation)
7月16日
モルモットの日
- 正式名:Guinea Pig Appreciation Day
- 由来:
- 目的:
- 制定年:
- 制定元:カナダの動物保護団体
7月29日
国際トラの日
- 正式名:International Tiger Day
- 由来:
- 目的:絶滅の危機にあるトラの現状を広く知ってもらい、保護を考えるための日
- 制定年:2010年
- 制定元:国際会議「トラサミット」で制定
7月31日
ミックス犬の日(アメリカ)
- 由来:
- 目的:
- 制定年:
- 制定元:
ミックス犬とは、いわゆる雑種犬のこと。
ちなみに12月2日もミックス犬の日
7月その他
コアラの日
- 日付:7月最終金曜日
- 由来:
- 目的:
- 制定年:
- 制定元:オーストラリアコアラ基金
8月4日
補助犬の日(アメリカ)
- 正式名:Assistance Dog Day
- 由来:
- 目的:
- 制定年:
- 制定元:
8月6日
ハムスターの日(日本)
- 由来:「は(8)む(6)」の語呂合わせ
- 目的:
- 制定年:
- 制定元:
8月8日
国際ネコの日
- 正式名:International Cat Day
- 由来:
- 目的:人間と猫の友情を深めあうとともに、猫に安全な生活を提供することを誓う日
- 制定年:2002年
- 制定元:カナダの国際動物福祉基金(IFAW)
8月10日
スヌーピーの日
スヌーピーのお誕生日
鳩の日
- 由来:「は(8)と(10)」の語呂合わせ
- 目的:
- 制定年:
- 制定元:
世界ライオンの日
- 正式名:World Lion Day
- 由来:
- 目的:ライオンの保護活動を広く訴える
- 制定年:2013年
- 制定元:非営利団体「African Parks」
8月12日
世界ゾウの日
- 正式名:World Elephant Day
- 由来:
- 目的:密猟などで絶滅の危機にあるゾウの現状と保護をうったえる目的
- 制定年:2012年
- 制定元:カナダの映画監督Patricia Simsとタイにあるゾウ保護団体Elephant Reintroduction Foundationが制定
8月13日
国際オオカミの日
- 由来:
- 目的:
- 制定年:
- 制定元:
8月17日
黒ネコ感謝の日(アメリカ)
- 正式名:Black Cat Appreciation Day
- 由来:
- 目的:
- 制定年:
- 制定元:
8月19日
国際オランウータンの日
- 由来:
- 目的:
- 制定年:
- 制定元:
8月26日
犬の日(アメリカ)
- 正式名:National Dog Day
- 由来:
- 目的:ペット家族のライフスタイル推進
- 制定年:2004年
- 制定元:動物愛護家のColleen Paige
その後、世界犬の日(World Dog Day)になった?
9月1日
国際霊長類の日
- 正式名:International Primates Day
- 由来:
- 目的:世界中の野生霊長類の保全や、飼育個体も含めてショーやペットビジネスなどの商業利用をやめようという普及啓発
- 制定年:
- 制定元:
9月4日
野生動物の日(アメリカ)
- 由来:
- 目的:
- 制定年:
- 制定元:
9月6日
黒猫の日(日本)
- 由来:「く(9)ろ(6)」の語呂合わせ
- 目的:
- 制定年:
- 制定元:
カラスの日(日本)
- 由来:英語で「Crow」→「く(9)ろ(6)」の語呂合わせ
- 目的:
- 制定年:
- 制定元:カラス雑誌『CROW'S』を発行する「カラス友の会」
9月17日
ヤンバルクイナの日
- 由来:
- 目的:
- 制定年:
- 制定元:
9月22日
世界サイの日
- 正式名:World Rhino Day
- 由来:
- 目的:
- 制定年:2010年
- 制定元:世界自然保護基金(WWF)
象さんに続いて、「もふもふ」認定が難しいですが。
9月24日
世界ゴリラの日
- 正式名:World Gorilla Day
- 由来:
- 目的:
- 制定年:2017年
- 制定元:ダイアン・フォッシー国際ゴリラ財団
9月29日
招き猫の日
- 由来:「くる(9)ふく(29)」の語呂合わせ
- 目的:
- 制定年:
- 制定元:
9月その他
国際ハゲワシ啓蒙の日
- 日付:9月第1土曜日
- 正式名:International Vulture Awareness Day
- 由来:
- 目的:
- 制定年:
- 制定元:
国際レッサーパンダデー
- 日付:9月第3土曜日
- 正式名:International Red Panda Day
- 由来:
- 目的:
- 制定年:
- 制定元:アメリカのレッサーパンダ保全団体「Redpanda Network」
国際レッドパンダの日とも
世界ウサギの日
- 日付:9月第4週目の土曜日または日曜日
- 由来:
- 目的:
- 制定年:
- 制定元:
10月1日
黒犬の日(アメリカ)
- 正式名:National Black Dog Day
- 由来:
- 目的:
- 制定年:
- 制定元:
補助犬の日(日本)
- 由来:
- 目的:
- 制定年:
- 制定元:
ちなみに5月22日も「補助犬の日」
10月4日
世界動物の日
- 正式名:World Animal Day
- 由来:この日がアッシジのフランチェスコの聖名祝日であるため
- 目的:動物愛護・動物保護のための世界的な記念日
- 制定年:1931年
- 制定元:イタリア・フィレンツェで開かれた「国際動物保護会議」
10月8日
ツシマヤマネコの日
- 由来:ツシマヤマネコの別名である「と(10)らや(8)ま」の語呂合わせ
- 目的:広く保護への協力を呼びかけるとともに、ツシマヤマネコの保護に関する普及啓発
- 制定年:2015年
- 制定元:ツシマヤマネコ保護増殖連絡協議会
10月16日
野良猫の日(アメリカ)
- 由来:
- 目的:
- 制定年:
- 制定元:
10月18日
世界オカピの日
- 正式名:World Okapi Day
- 由来:
- 目的:
- 制定年:
- 制定元:オカピ・コンサベーション・プロジェクト(OKAPI CONSERVATION PROJECT)
10月20日
国際ナマケモノの日
- 正式名:International Sloth Day
- 由来:
- 目的:
- 制定年:2010年
- 制定元:コロンビアの民間団体が開催したナマケモノの保全などに関する国際会議で制定
10月22日
世界ウォンバットの日
- 正式名:World Wombat Day
- 由来:
- 目的:
- 制定年:
- 制定元:
10月23日
世界ユキヒョウの日
- 正式名:World Snowleopard Day
- 由来:2013年に「世界ユキヒョウ保護フォーラム」が開催されたため
- 目的:
- 制定年:2014年
- 制定元:
10月24日
文鳥の日
- 由来:
- 目的:
- 制定年:
- 制定元:
国際テナガザルの日
- 正式名:International Gibbon Day
- 由来:
- 目的:
- 制定年:
- 制定元:IUCNが組織する霊長類専門家グループ(PSG)の中の小型類人猿チーム(SSA)が制定
10月27日
テディベアズ・デー
- 由来:
- 目的:
- 制定年:
- 制定元:
黒猫の日(イギリス)
- 由来:
- 目的:
- 制定年:
- 制定元:
10月28日
パンダの日(日本)
- 由来:日本で最初のジャイアントパンダ「ランラン」と「カンカン」来園にちなむ(1972年10月28日)
- 目的:
- 制定年:
- 制定元:上野動物園
10月29日
猫の日(アメリカ)
- 正式名:National Feral Cat Day
- 由来:
- 目的:
- 制定年:2005年
- 制定元:Alley Cat Allies(アメリカ)
10月その他
世界キツネザルの日
- 日付:10月最終金曜日
- 正式名:World Lemur Day
- 由来:
- 目的:
- 制定年:2014年
- 制定元:世界自然保護連合(IUCN)霊長類専門家グループによるマダガスカルプロジェクトが提唱
11月1日
犬の日(日本)
- 由来:「わん(1)わん(1)わん(1)」の語呂合わせ
- 目的:
- 制定年:1987年
- 制定元:社団法人ペットフード協会
キティーちゃんの誕生日
世界のキティーちゃんのお誕生日
11月8日
信楽たぬきの日
- 由来:日付は1と1が重なるいちばん良い月の11月と、信楽焼の狸の特徴である八つの縁起物の八相縁起から8日を組み合わせた
- 目的:年に一度あらためてたぬきに感謝していっそうの縁起を願う(信楽焼産地の活性化と観光の振興)
- 制定年:2012年8月8日(2008年8月8日制定の「たぬき休むでぇ~」から改名)
- 制定元:信楽町観光協会
一般財団法人日本記念日協会の認定記念日。
11月11日
シマリスの日(日本)
- 由来:背中のシマ
- 目的:
- 制定年:
- 制定元:
11月17日
黒猫の日(イタリア)
- 由来:2月17日の「猫の日(イタリア)」を参照
- 目的:不吉と言われる黒猫を守るため、あるいは迷信を払拭するため
- 制定年:
- 制定元:
11月18日
熊の日
- 由来:
- 目的:
- 制定年:
- 制定元:
ミッキーマウスの誕生日
世界一有名なネズミさんのお誕生日
11月21日
イーブイの日
- 由来:
- 目的:
- 制定年:
- 制定元:
11月22日
ペットたちに感謝する日(日本)
- 由来:「わんわんにゃーにゃー」の語呂合わせ
- 目的:
- 制定年:
- 制定元:
11月29日
いい肉球の日
- 由来:語呂合わせ
- 目的:
- 制定年:
- 制定元:
12月2日
ミックス犬の日(アメリカ)
- 由来:
- 目的:
- 制定年:
- 制定元:
ちなみに7月31日も「ミックス犬の日」
12月4日
国際チーターの日
- 正式名:International Cheetah Day
- 由来:
- 目的:
- 制定年:
- 制定元:
12月12日
世界りんご猫デー
- 正式名:World Apple Cats Day
- 由来:
- 目的:
- 制定年:
- 制定元:
りんご猫とは、FIV(ネコエイズウイルス)に感染した猫のことだそうです。ネコエイズの偏見をなくすために「りんご猫」とよぶようです。
プログラム
適当なサーバから cron で毎日動かし、月日をチェックしてメッセージを toot してみることにしました。
まずは、メッセージを用意します。
anniversaries = {
"0114": "今日はタロとジロの日ですね :dog: :dog_face:",
"0121": "今日はリスの日(アメリカ:flag-us:)ですね。 :chipmunk:",
"0131": "今日は国際シマウマの日(International Zebra Day)ですね :zebra:",
"0202": "今日は世界ダチョウの日(World Ostrich Day)ですね",
"0205": "今日はピカチュウの日ですね",
"0208": "今日はニワトリの日ですね :chicken:",
"0209": "今日はフクロウの日ですね :owl:",
"0215": "今日は世界カバの日ですね :hippopotamus:",
"0217": "今日は猫の日(イタリア:flag-it:)ですね :cat:",
"0222": "今日は猫の日(日本:flag-jp:)ですね :cat:",
"0227": "今日は Pokemon Day と、国際ホッキョクグマの日(International Polar Bear Day)ですね",
"0301": "今日はブタの日(アメリカ:flag-us:) :pig_face: と、猫の日(ロシア:flag-ru:)ですね :cat:",
"0302": "今日はミニブタの日(日本:flag-jp:)ですね :pig_face:",
"0303": "今日は世界野生動物の日(World Wildlife Day)とウサギの日(日本:flag-jp:)ですね :rabbit:",
"0311": "今日はパンダ発見の日ですね :panda_face:",
"0320": "今日は世界スズメの日(World Sparrow Day)ですね",
"0323": "今日は子犬の日(アメリカ:flag-us:)ですね :dog:",
"0403": "今日はシーサーの日(沖縄)ですね",
"0404": "今日は獅子の日(日本:flag-jp:) :lion_face: と、猫の日(台湾:flag-tw:)ですね :cat:",
"0408": "今日は忠犬ハチ公の日ですね :dog:",
"0411": "今日はペットの日(アメリカ:flag-us:)ですね :cat: :dog:",
"0412": "今日は世界ハムスターの日(World Hamster Day)ですね :hamster_face:",
"0415": "今日はイリオモテヤマネコの日ですね :cat:",
"0423": "今日はマヌルネコの日ですね",
"0425": "今日は世界ペンギンの日(World Penguin Day)ですね :linux:",
"0427": "今日は世界バクの日(World Tapir Day)ですね",
"0428": "今日は象の日(日本:flag-jp:)ですね :postgresql:",
"0509": "今日は悟空の日(日本:flag-jp:)ですね :monkey:",
"0513": "今日は愛犬の日(日本:flag-jp:)ですね :dog:",
"0522": "今日は補助犬の日ですね :guide_dog:",
"0604": "今日は猫をハグする日(アメリカ:flag-us:)ですね :cat_face:",
"0606": "今日はヒツジの日(日本:flag-jp:)ですね :ewe:",
"0615": "今日はオウムとインコの日ですね :christmasparrot:",
"0621": "今日は世界キリンの日(World Giraffe Day)ですね :giraffe:",
"0622": "今日は世界ラクダの日(World Camel Day)ですね :perl:",
"0714": "今日は世界チンパンジーの日(World Porcupine Day)ですね :monkey:",
"0716": "今日はモルモットの日(カナダ:flag-ca:)ですね",
"0729": "今日は国際トラの日(International Tiger Day)ですね :tiger_face:",
"0731": "今日はミックス犬の日(アメリカ:flag-us:)ですね :dog:",
"0806": "今日はハムスターの日(日本:flag-jp:)ですね :hamster_face:",
"0808": "今日は世界ネコの日(World Cat Day)ですね :cat:",
"0810": "今日はスヌーピーの日(日本:flag-jp:)と、世界ライオンの日(World Lion Day)ですね :lion_face:",
"0812": "今日は世界ゾウの日(World Elephant Day)ですね :postgresql:",
"0813": "今日は世界オオカミの日(World Wolf Day)ですね :wolf_face:",
"0817": "今日は黒ネコ感謝の日(アメリカ:flag-us:)ですね :github:",
"0819": "今日は国際オランウータンの日(International Orangutan Day)ですね :orangutan:",
"0826": "今日は世界イヌの日(World Dog Day)ですね :dog:",
"0901": "今日は国際霊長類の日(International Primates Day)ですね :monkey:",
"0904": "今日は野生動物の日(アメリカ:flag-us:)ですね",
"0906": "今日は黒猫の日(日本:flag-jp:)ですね :github:",
"0917": "今日はヤンバルクイナの日ですね",
"0922": "今日は世界サイの日(World Rhino Day)ですね :rhinoceros:",
"0924": "今日は世界ゴリラの日(World Gorilla Day)ですね :gorilla:",
"0929": "今日は招き猫の日ですね",
"1001": "今日は補助犬の日(日本:flag-jp:):guide_dog: と、黒犬の日(アメリカ:flag-us:)ですね",
"1004": "今日は世界動物の日(World Animal Day)ですね :firefox: :gopher: :qiitan:",
"1008": "今日はツシマヤマネコの日ですね :cat:",
"1016": "今日は野良猫の日(アメリカ:flag-us:)ですね :cat:",
"1018": "今日は世界オカピの日(World Okapi Day)ですね",
"1020": "今日は国際ナマケモノの日(International Sloth Day)ですね :sloth:",
"1022": "今日は世界ウォンバットの日(World Wombat Day)ですね",
"1023": "今日は国際ユキヒョウの日(International Snow Leopard Day)ですね",
"1024": "今日は文鳥の日と、国際テナガザルの日(International Gibbon Day)ですね",
"1027": "今日はテディベアズ・デーと、黒猫の日(イギリス:flag-gb:)ですね :github:",
"1028": "今日はパンダの日(日本:flag-jp:)ですね :panda_face:",
"1029": "今日は猫の日(アメリカ:flag-us:)ですね :cat:",
"1101": "今日は犬の日(日本:flag-jp:):dog: と、キティーちゃんの誕生日ですね",
"1108": "今日は信楽たぬきの日ですね",
"1111": "今日はシマリスの日(日本:flag-jp:)ですね :chipmunk:",
"1117": "今日は黒猫の日(イタリア:flag-it:)ですね :github:",
"1118": "今日は熊の日(日本:flag-jp:) :bear_face: と、ミッキーマウスの誕生日ですね",
"1121": "今日はイーブイの日(日本:flag-jp:)ですね",
"1122": "今日はペットたちに感謝する日(日本:flag-jp:)ですね :dog: :cat:",
"1129": "今日はいい肉球の日(日本:flag-jp:)ですね :paw_prints:",
"1202": "今日はミックス犬の日(アメリカ:flag-us:)ですね :dog:",
"1204": "今日は国際チーターの日(International Cheetah Day)ですね :apach_tomcat:",
"1212": "今日は世界りんご猫デー(World Apple Cats Day)ですね :apple: :cat:",
}
ただし、実は絵文字はそのまま(例: :dog:
)で送ってもだめらしい。
いろいろ試した結果は以下の通り。
- 通常の絵文字(Mastodonの標準)は、Unicodeとして送る
- qiitadon 独自の追加絵文字は、
:linux:
や:qiita:
のように送れば OK - 絵文字の結合はできない。もともと登録されている結合絵文字はOKだけど、登録されていない結合絵文字(例:猫+結合文字+黒、など)はうまく表示できない。登録済の絵文字には tooltip のような設定がされるため、絵文字と結合文字の間にタグが挿入されてしまうのだと思われます。
というわけで、自力で絵文字を変換するロジックを用意する。
全絵文字をやるほど根気がないので、使いそうなものだけ。
def emoji_to_unicode(data):
return (
data.replace(":monkey:", "\U0001f412")
.replace(":gorilla:", "\U0001f98d")
.replace(":orangutan:", "\U0001f9a7")
.replace(":dog_face:", "\U0001f436")
.replace(":dog:", "\U0001f415")
.replace(":guide_dog:", "\U0001f9ae") # 盲導犬
.replace(":wolf_face:", "\U0001f43a")
.replace(":cat_face:", "\U0001f431")
.replace(":cat:", "\U0001f408")
.replace(":lion_face:", "\U0001f981")
.replace(":tiger_face:", "\U0001f42f")
.replace(":zebra:", "\U0001f993")
.replace(":pig_face:", "\U0001f437")
.replace(":ewe:", "\U0001f411") # ヒツジ
.replace(":giraffe:", "\U0001f992")
.replace(":elephant:", "\U0001f418")
.replace(":rhinoceros:", "\U0001f98f")
.replace(":hippopotamus:", "\U0001f99b")
.replace(":mouse_face:", "\U0001f42d")
.replace(":hamster_face:", "\U0001f439")
.replace(":rabbit_face:", "\U0001f430")
.replace(":rabbit:", "\U0001f407")
.replace(":chipmunk:", "\U0001f43f")
.replace(":bear_face:", "\U0001f43b")
.replace(":koala:", "\U0001f428")
.replace(":panda_face:", "\U0001f43c")
.replace(":sloth:", "\U0001f9a5")
.replace(":paw_prints:", "\U0001f43e") # 動物の足跡
.replace(":chicken:", "\U0001f414")
.replace(":owl:", "\U0001f989")
.replace(":flag-ca:", "\U0001f1e8\U0001f1e6")
.replace(":flag-cn:", "\U0001f1e8\U0001f1f3")
.replace(":flag-de:", "\U0001f1e9\U0001f1e9")
.replace(":flag-eu:", "\U0001f1ea\U0001f1fa")
.replace(":flag-fr:", "\U0001f1eb\U0001f1f7")
.replace(":flag-it:", "\U0001f1ee\U0001f1f9")
.replace(":flag-ru:", "\U0001f1f7\U0001f1fa")
.replace(":flag-uk:", "\U0001f1ec\U0001f1e7")
.replace(":flag-uk:", "\U0001f1ec\U0001f1e7")
.replace(":flag-jp:", "\U0001f1ef\U0001f1f5")
.replace(":flag-kr:", "\U0001f1f0\U0001f1f7")
.replace(":flag-tw:", "\U0001f1f9\U0001f1fc")
.replace(":flag-us:", "\U0001f1fa\U0001f1f8")
.replace(":apple:", "\U0001f34e")
.replace(":robot_face:", "\U0001f916")
)
あとは、Qiita記事を参考のロジックを作るだけ。
たとえば、以下の記事が参考になります
import datetime
import sys
import urllib.request
import urllib.parse
url = "https://qiitadon.com/api/v1/statuses"
def main():
if len(sys.argv) != 2:
print("usage: {} ACCESS_TOKEN".format(sys.argv[0]), file=sys.stderr)
return
access_token = sys.argv[1]
message = message_of_today()
if message != "":
greet = ":robot_face: おはようございます。"
toot(emoji_to_unicode(greet + message), access_token)
# print(emoji_to_unicode(message))
def message_of_today():
today = datetime.date.today()
key = "{:0>2}{:0>2}".format(today.month, today.day)
return anniversaries[key] if key in anniversaries else ""
def toot(message, access_token):
# unlisted / public
data = "visibility=public&status=" + urllib.parse.quote(message)
headers = {
"Authorization": "Bearer " + access_token,
"Content-Type": "application/x-www-form-urlencoded",
}
req = urllib.request.Request(url, data.encode("ascii"), headers)
with urllib.request.urlopen(req) as res:
res.read()
if __name__ == "__main__":
main()
Qiitadon では「おはよう」ではなく「おはどん」というのが一般的みたいですが、小心者の私は「おはようございます」と言っています。
toot するには、アクセスキーが必要になります。
詳細は、前述の KEINOS さんの記事が参考になります。
Qiitadon にログインした後、設定アイコン(歯車)→下の方に行って「開発」→「新規アプリ」で新しいアプリを作成します。
権限は、write だけあれば、とりあえず問題ありません。
作成したら表示されるアクセストークンをコピーして、大切に保管(他の人に見せたらダメ)。
上記、ソースはコマンドラインからアクセストークンを受け取るようになっていますが、適当に直してもいいと思います(例:直接ハードコーディング。あるいは環境変数定義など)。
あとは、前述の通り、適当なマシンで crontab -e
で を実行すればOK。
【分】 【時】 * * * /usr/bin/python3 /path_to_file/qiitadon_bot.py 【アクセストークン】