【C#】Slackからemojiを一括ダウンロードするツールを作った
概要
複数Slack Team間のemojiの同期をしたかったので、emojiを一括ダウンロードしてくるツールをC#で書きました。
Chrome拡張のSlack Emoji Toolsと合わせることで、一括でのemojiのお引っ越しが出来ます。
動作
コード
"ここにトークンを入力"
にここ(https://api.slack.com/custom-integrations/legacy-tokens)から引っ張ってきたTokenをぶち込みましょう。
あと、参照にSystem.Runtime.Serialization
を追加してください。
/* SlackEmojiDownloader Copyright (c) 2017 Yutaka Sato This software is released under the MIT License. http://opensource.org/licenses/mit-license.php */ using System; using System.Collections.Generic; using System.IO; using System.Net; using System.Runtime.Serialization; using System.Runtime.Serialization.Json; namespace SlackEmojiDownloader { [DataContract] internal class EmojiResponce { [DataMember(Name = "ok")] private bool _ok; [DataMember(Name = "emoji")] private Dictionary<string, string> _emoji; public bool Ok => _ok; public Dictionary<string, string> Emoji => _emoji; } internal class Program { private static void Main(string[] args) { const string folderName = "Images"; const string url = "https://slack.com/api/emoji.list?pretty=1&token="; const string token = "ここにトークンを入力"; Stream stream; using (var webClient = new WebClient()) { stream = webClient.OpenRead(url + token); } if (stream == null) return; var settings = new DataContractJsonSerializerSettings {UseSimpleDictionaryFormat = true}; var jsonSerializer = new DataContractJsonSerializer(typeof(EmojiResponce), settings); var jsonObj = jsonSerializer.ReadObject(stream) as EmojiResponce; Directory.CreateDirectory(folderName); if (jsonObj == null) return; foreach (var keyValuePair in jsonObj.Emoji) { var value = keyValuePair.Value; var key = keyValuePair.Key; var fileName = Path.Combine(folderName, key + Path.GetExtension(value)); Console.WriteLine(fileName); var webClient = new WebClient(); if (value.Substring(0, 5) == "alias") continue; webClient.DownloadFile(new Uri(value), fileName); } } } }
【Unity】World空間で楽にCanvasのサイズを設定するためのエディタ拡張を作った
ことはじめ
VRなどで、3Dの空間(World Space)でCanvasを使いたくなることはよくあると思います。
文字のサイズやSpriteなどはピクセル単位での指定となるため、実際の位置とピクセル空間での位置を二重で考えなければならず、頭がこんがらがります。
「なんで3Dするのにピクセルのことを一々考えなければいけないんや!」と思ったので、楽するためのエディタ拡張を作ってみました。
続きを読む【Unity】空のフォルダを一括で削除してくれるエディタ拡張を作った
ことはじめ
gitではフォルダは基本的に管理されず、中にファイルが有った場合にはフォルダを作る、という仕組みになっています。
対して、Unityではフォルダごとにmetaファイルが生成されるようになっています。
そのため、Unityのプロジェクトをgitで管理しているとき、他の人が削除したフォルダがローカルで反映されず、再度metaファイルが生成されてしまうなどの事故が起こりがちです。
その都度ローカルでも不要なフォルダを削除してやれば問題ないのですが、地味に面倒な作業だったため、自動で消してくれるエディタ拡張を作りました。
続きを読むブログ乱立の始まり
ことはじめ
最近、コスト削減&セキュリティの強化を目的に、ブログをWordPressからHugoへ移行しました。
WordPressの魅力
WordPressは、PHPで書かれた多量のテンプレートや多量のプラグインがある、非常に大規模なブログエンジンです。
しかしながら、それはまた弱点でもあります。
- エンジンのコードを編集し、自分好みのシステムに作り変えるといったこと。
- cssを編集し、自分で一からデザインを作り直すこと。
- 運用コストも高く、小銭稼ぎで始めたはずのブログが赤字となってしまいました。
ページビューが少ないのが原因ですが。
大規模が故に、それらの道がとても険しくなっていたのです。
続きを読む