LoginSignup
2
1

More than 5 years have passed since last update.

いつも開くwebサイトを自動で開く

Posted at

動機

やることが決まってくるといつも開くのが決まってきます。そこでまず楽したくなりますよね。そのために考えられる方法をいくつか考えてみました。
一つ目は開くと自動的に表示されるようにすること。ですがこれは一つしか開けなかったり、どうあがいても必ず最初に開いてしまいます。二度目からはしないという状況ではうざったいですね。
二つ目はブックマーク機能を使い、テンプレ集を作成してそれをすべて開くという方法です。この方法は良いのですが開き忘れが生じると困りますね。
三つ目はbatファイルでstart https://***のようなコマンドを連続で並べて開かせる方法です。この方法にすると対応するリンク集毎にbatファイル(例えば漫画のリンクへのコマンドを集めたファイル)を作成するとそれを開けば目的のものをすべて開いてくれそうです。しかし、リンク集を作るのは簡単だけどいちいちstartコマンドを最初につけるのはめんどくさくなりました。そこでリンク集からstartをつけたコマンドを自動生成して実行する実行ファイルをHaskellで作成することにしました。

使い方

まずgithubにてwebTmp.exeをダウンロードしてください。
次にリンク集を用意してください。例えば以下のようにします。

link.txt
https://qiita.com/ogata-k
https://qiita.com/ogata-k/items/08de9637111bf61099da
https://qiita.com/ogata-k/items/ed53406a8e6010fe4a43
https://qiita.com/ogata-k/items/2b21326b2b7351bfc28c
https://qiita.com/ogata-k/items/23d70250ec42359b6bb5
https://qiita.com/ogata-k/items/874811cf1aca41bfe88e

そのファイルのパスを引数にwebTmp.exeを実行してください。すると大量に開かれるはずです。
使い方はこれだけですが一つだけ注意してほしいところがあります。コードを簡単に書いたのでエラー処理やリンクとして正しくないときの処理を行っていません。その為上手くいかないときがあるかもしれません。(例えばファイルの中に空行があると次で説明するsystem関数の都合上空行一つにつきコマンドプロンプトが一つ残ってしまう。)普通に使う分には問題ありません。

コード

次にコードの説明をします。コードは短いので直でここに載せます。

webTmp/src/Lib.hs
module Lib
    ( doStarts
    ) where

import System.Process
import Control.Monad

doStarts :: [String] -> IO ()
doStarts = mapM_ $ system . ("start " ++)

webTmp/app/Main.hs
module Main where

import Lib
import System.Environment
import Control.Monad

main :: IO ()
main = do
    fPath <- head <$> getArgs
    ss <- lines <$> readFile fPath
    doStarts ss

だけです。全体はgithubに載せておきます。といってもほかに重要なファイルはありません。
コードの説明をしていきます。説明といっても説明することはほとんどありません。
まずLib.hsファイルの説明です。
こちらは文字列のリストを分割して頭にstartを取り付けてそれぞれを実行していきます。system関数はSystem.Processモジュールに入っており、文字列を受け取って実行、そして実行結果を返すという機能を持ちます。(詳しくはこちら
次にMain.hsファイルの説明です。
これは与えられた引数のFilepathを読み込んで文字列のリストとしてssに保持し、先ほどのdoStarts関数に丸投げします。もう一度言いますが、簡単に書いただけなので引数の妥当性のチェックやファイルの中身が正しくリンクになっているかのチェックも行っていないので注意してください。(普通に使うなら問題はないはずです。)

まとめ

いつも開くのがめんどくさくてやっつけ仕事で作ってみました。皆さんもどうぞ自己責任でお使いください。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1