-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathscript.js
231 lines (217 loc) · 8.13 KB
/
script.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
document.getElementById('omikujiButton').addEventListener('click', function() {
// 講演情報の配列を作成
// ---公演情報ここから---
const items = [
{
title: "ひろゆきと10人の学生エンジニア〜論破するのか、されるのか〜",
time: "9月22日 17:15",
company: "ひろゆき",
hall: "A",
},
{
title:
"ビジネスに必要な全てを担い、自分の専門性を見つけ出すフルサイクル開発者のあり方",
time: "9月22日 16:20",
company: "株式会社CARTA HOLDINGS",
hall: "A",
},
{
title:
"【開発責任者が語る】顧客が真に求めるものを作る面白さとプロの覚悟とは?",
time: "9月22日 15:25",
company: "ウイングアーク1st株式会社",
hall: "A",
},
{
title:
"VPoEが語る!!会社員(?)としてWebエンジニアを20年続ける話!(n=1)",
time: "9月22日 14:30",
company: "エン・ジャパン株式会社",
hall: "B",
},
{
title:
"ウルトラポジショントーク 〜新卒最初のキャリアで◯◯◯の会社を狙え!?",
time: "9月22日 14:30",
company: "株式会社MIXI",
hall: "A",
},
{
title:
"社内初のプロジェクトを1年目でリード!AI基盤をローンチし、事例紹介いただいた話",
time: "9月22日 13:35",
company: "合同会社DMM.com",
hall: "B",
},
{
title:
"1年で会員数日本一!代表が語るchocoZAPのユーザーに寄り添った開発とは?",
time: "9月22日 13:35",
company: "RIZAPグループ株式会社",
hall: "A",
},
{
title:
"『AIの進化とビジネス革新:サイバーエージェントが描く「未来のエンジニア像」』",
time: "9月22日 12:40",
company: "株式会社サイバーエージェント",
hall: "A",
},
{
title: "RedCoder のライブ競プロ ~競プロ世界ランカーのアルゴリズム改善~",
time: "9月22日 11:30",
company: "高橋 直大(chokudai)",
hall: "B",
},
{
title: "人工知能で火星に挑戦した話〜NASAエンジニアが語る夢の追い方〜",
time: "9月22日 11:30",
company: "小野 雅裕",
hall: "A",
},
{
title: "Rubyの父、Matz氏によるRubyライブコーディング",
time: "9月21日 18:10",
company: "まつもとゆきひろ",
hall: "B",
},
{
title:
"AIエンジニアが政治家を目指してみた件〜テクノロジーは社会を変えるのか?〜",
time: "9月21日 18:10",
company: "安野 貴博",
hall: "A",
},
{
title: "最新版!新卒がIT企業選びをするための完全攻略法",
time: "9月21日 17:15",
company: "株式会社ゆめみ",
hall: "A",
},
{
title: "オブジェクト指向プログラミング実践のための橋渡し",
time: "9月21日 16:20",
company: "GMOインターネットグループ",
hall: "A",
},
{
title: "メーカーにおけるデータサイエンティストの働き方について",
time: "9月21日 15:25",
company: "株式会社村田製作所",
hall: "C",
},
{
title:
"さくらインターネットの技術執行役員が語る!ソフトウェア無線を使った無線解析",
time: "9月21日 15:25",
company: "さくらインターネット株式会社",
hall: "B",
},
{
title: "人材企業【doda】が伝える本当の会社選びとは?",
time: "9月21日 15:25",
company: "パーソルキャリア株式会社",
hall: "A",
},
{
title: "2400万DL数を突破したタクシーアプリ『GO』の開発秘話とこれから",
time: "9月21日 14:30",
company: "GO株式会社",
hall: "C",
},
{
title:
"技育プロジェクト出身者が語る、プロダクトエンジニアとしての第一歩の踏み出し方",
time: "9月21日 14:30",
company: "セーフィー株式会社",
hall: "B",
},
{
title:
"ITコンサルが改善するのはビジネスだけじゃない!サークル的活動で業界貢献",
time: "9月21日 14:30",
company: "フューチャー株式会社(フューチャーアーキテクト株式会社)",
hall: "A",
},
{
title: "Go Bold in Your Career 大胆なチャレンジでキャリアを築く",
time: "9月21日 13:35",
company: "株式会社メルカリ",
hall: "C",
},
{
title:
"社内開発の裏側を公開!! 3ヶ月で予約制駐車場&QRコード決済機能を作った話。",
time: "9月21日 13:35",
company: "パーク24株式会社",
hall: "B",
},
{
title: "生成AIの波とプロダクト変化、エンジニアの向き合い方",
time: "9月21日 13:35",
company: "株式会社LayerX",
hall: "A",
},
{
title: "DeNA創業者南場智子が考えるエンジニアキャリア",
time: "9月21日 12:40",
company: "株式会社ディー・エヌ・エー",
hall: "A",
},
];
// ---公演情報ここまで---
// ボタンを読み込む
const omikujiButton = document.getElementById("omikujiButton");
const postToXButton = document.getElementById("postToXButton");
// ボタンの初期設定
omikujiButton.disabled = true; // おみくじボタンを無効化
postToXButton.classList.add("hidden"); // ポストボタンを非表示にする
// スピン処理に必要な変数を作成
let index = 0; // 現在の公演情報を保持
let count = 0; // 現在の回転数を保持
let maxCount = 20; // 最大回転回数
let speed = 50; // 初期回転速度
// ---スピン処理ここから---
function spin() {
if (count < maxCount) {
// おみくじの内容をランダムに変更
index = Math.floor(Math.random() * items.length);
// おみくじの内容を画面に表示
document.getElementById("omikujiTitle").textContent = items[index].title;
document.getElementById("omikujiDetails").textContent =
`${items[index].time}, ${items[index].company}, ホール: ${items[index].hall}`;
count++;
// 回転の速度を徐々に遅くする
speed += 5;
setTimeout(spin, speed); // 繰り返す
} else {
// 最終結果の公演情報を取得
const finalItem = items[index];
// 最終結果の表示
document.getElementById("omikujiTitle").textContent = finalItem.title;
document.getElementById("omikujiDetails").textContent =
`${finalItem.time}, ${finalItem.company}, ホール: ${finalItem.hall}`;
// ボタンを有効化/表示する設定
omikujiButton.disabled = false; // おみくじボタンを有効化
postToXButton.classList.remove("hidden"); // ポストボタンを表示
postToXButton.disabled = false; // ポストボタンを有効化
// Xにポストするボタンを押したときの処理開始
postToXButton.addEventListener("click", function () {
// Xにポスト
postToX(finalItem);
});
}
}
// ---スピン処理ここまで---
// スピン処理開始
spin();
function postToX(finalItem) {
const postText = `#技育祭 #講演おみくじ の結果は\n 「${finalItem.title}」でした!\n\n講演おみくじはこちら\nhttps://shinsakura.github.io/omikuji0921/\n\n技育祭の視聴申込はこちら\nhttps://talent.supporterz.jp/geeksai/2024autumn/`;
// 改行を含むテキストをURLエンコード
const encodedText = encodeURIComponent(postText);
// X投稿用のURLを生成
const postUrl = `https://x.com/intent/tweet?text=${encodedText}`;
// 新しいウィンドウでツイートページを開く
window.open(postUrl, "_blank");
}
});