Skip to content

Commit 7e770b4

Browse files
committed
Update API v1 -> v2: bin/c-search
1 parent 6496af1 commit 7e770b4

File tree

2 files changed

+32
-19
lines changed

2 files changed

+32
-19
lines changed

bin/c-search

Lines changed: 30 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,35 @@
1-
#!/bin/sh
2-
ENVRC_FILE=".envrc"
1+
#!/usr/bin/env ruby
32

4-
if [ ! -f "$ENVRC_FILE" ]; then
5-
echo "$ENVRC_FILE が見つかりません"
6-
exit 1
7-
fi
3+
require 'connpass_api_v2'
4+
require 'uri'
85

9-
source "$ENVRC_FILE"
6+
puts('CONNPASS_API_KEY が設定されていません') && exit(1) if ENV['CONNPASS_API_KEY'].empty?
7+
puts('Usage: c-search [CONNPASS_EVENT_URL | CONNPASS_EVENT_ID]') && exit(1) if ARGV.empty?
108

11-
if [ -z "$FIXIE_URL" ]; then
12-
echo "FIXIE_URL が設定されていません"
13-
exit 1
14-
fi
9+
input = ARGV[0]
10+
event_id = nil
11+
if input =~ /^https?:\/\//
12+
# URLからイベントIDを抽出
13+
event_id = URI(input).path[%r{event/(\d+)}, 1]
14+
else
15+
event_id = input.gsub(/\D/, '')
16+
end
17+
18+
unless event_id && !event_id.empty?
19+
puts "イベントIDが特定できませんでした: #{input}"
20+
exit 1
21+
end
22+
23+
client = ConnpassApiV2.client(ENV['CONNPASS_API_KEY'])
24+
result = client.get_events(event_id: event_id)
1525

16-
if [ $# -eq 0 ]
17-
then
18-
echo "Usage: c-search [CONNPASS_EVENT_URL | CONNPASS_EVENT_ID]"
26+
if result.results_returned > 0
27+
event = result.events.first
28+
puts event.fetch('id')
29+
#puts "id: #{event.fetch('id')}"
30+
#puts "title: #{event.fetch('title')}"
31+
#puts "group_id: #{event.fetch('group').fetch('id')}"
32+
#puts "group_name: #{event.fetch('group').fetch('title')}"
1933
else
20-
id=$(echo $1 | sed -e 's/[^0-9]//g')
21-
curl -x "$FIXIE_URL" -sL "https://connpass.com/api/v1/event/?event_id=${id}" | jq ".events[].series.id"
22-
fi
34+
puts "イベントが見つかりませんでした (event_id: #{event_id})"
35+
end

bin/setup

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ FileUtils.chdir APP_ROOT do
3434
#today = Time.now.in_time_zone('Tokyo').to_date
3535
#from = (today - 90).strftime('%Y%m')
3636
#to = today.prev_month.strftime('%Y%m')
37-
#if ENV['DOORKEEPER_API_TOKEN'] && ENV['FIXIE_URL']
37+
#if ENV['DOORKEEPER_API_TOKEN'] && ENV['CONNPASS_API_KEY']
3838
# system! "bin/rails statistics:aggregation[#{from},#{to}]"
3939
# system! 'bin/rails upcoming_events:aggregation'
4040
#elsif ENV['DOORKEEPER_API_TOKEN']
@@ -43,7 +43,7 @@ FileUtils.chdir APP_ROOT do
4343
# system! 'bin/rails upcoming_events:aggregation[connpass]'
4444
#else
4545
# puts <<~MESSAGE
46-
# 環境変数 DOORKEEPER_API_TOKEN と FIXIE_URL が設定されていないため、
46+
# 環境変数 DOORKEEPER_API_TOKEN と CONNPASS_API_KEY が設定されていないため、
4747
# Doorkeeper API や connpass API を使ったイベント情報の取得をスキップします。
4848
#
4949
# なお API 経由でイベント情報を取得しなくても、rails server は実行可能です。

0 commit comments

Comments
 (0)