traPtitech / booQ-UI

booQ (client) - management tool for equipment and book rental
1 stars 7 forks source link

openBDのサービス提供終了への対応 #1100

Open mazrean opened 1 year ago

mazrean commented 1 year ago

openBDのAPIが元データの関係でサービス終了するらしい。 60か月の間は代替データを利用してサービス提供は続けるらしいが、それまでには対応が必要。 また、代替データへ変更した際に大幅に書影がとれる本が減っており、ほとんどの本の画像が表示されなくなっているのでこちらは早めに対応した方がよさそう。 ref: https://openbd.jp/news/20230725.html

s9-sukyu commented 1 year ago

現状のopenBD, Google Books API, 国会国立図書館ともに網羅度はそこまで高くないが、国会国立図書館が一番網羅度が高い気がしている(ちょっと触っただけだから違うかも)のでこちらを使ってみたい

現状の運用では、書籍登録時に画像のURL(img_url)をDBに保存しているため、単にこの辺のコードを書き換えるだけでは既存の書影が404なのは変わらないのでDBをいじる必要がある

s9-sukyu commented 1 year ago

useCompleteFromCode.cs内の関数useCompleteFromCodeで以下を定義して

const setNDLImgUrlIfExist = async () => {
    const res = await axios.get(
      'https://iss.ndl.go.jp/thumbnail/' + formState.code
    )
    if (res.status === 200) {
      return 'https://iss.ndl.go.jp/thumbnail/' + formState.code
    } else {
      return ''
    }
  }

imgUrlの部分をformState.imgUrl = res.imgUrl ?? (await setNDLImgUrlIfExist())と書き換えてみたが、CORSでひっかかってる上にそもそもPR権限がなかった