tg_send_zon 0.0.1 → 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/tg_send_zon.rb +115 -73
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ecc986791e229ed38c94fe2c59d53c5694ab765fdfd3dd2f048ee8aa74a5b829
|
4
|
+
data.tar.gz: e6f5c5fd5610306a4b9df6442eb5917b14c45534846961a3542cda6c4a277363
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 868324a6b0d36fd844a529faf6e1f22d42f91178fe662fd92184799ffaabebf8637c72550e2b164d5ab0a602ac1f3360fc87e7e4618727ceff46d0ca64850eaf
|
7
|
+
data.tar.gz: 9b72108eb9b06d46b6a37071ee18fe71c1d00528a09e1f41d8e4feac099c9f8054a8dba157511efa8e5e34f3c4809ff18e302bdab0e9559c7ad5a343c378f432
|
data/lib/tg_send_zon.rb
CHANGED
@@ -1156,68 +1156,106 @@ class Wordpress
|
|
1156
1156
|
@data['table'].pop
|
1157
1157
|
}
|
1158
1158
|
}
|
1159
|
-
button('
|
1159
|
+
button('그룹 URL 불러오기 ') {
|
1160
1160
|
top 0
|
1161
1161
|
left 2
|
1162
|
-
on_clicked{
|
1162
|
+
on_clicked {
|
1163
1163
|
file = open_file
|
1164
1164
|
if file != nil
|
1165
|
-
|
1166
|
-
|
1167
|
-
|
1168
|
-
|
1169
|
-
|
1170
|
-
|
1171
|
-
|
1165
|
+
Thread.new do
|
1166
|
+
begin
|
1167
|
+
# 큐 생성: 스레드에서 메인 스레드로 데이터를 전송
|
1168
|
+
queue = Queue.new
|
1169
|
+
|
1170
|
+
# 파일을 한 번에 읽어들임
|
1171
|
+
file_data = IO.readlines(file, chomp: true)
|
1172
|
+
|
1173
|
+
# 100줄씩 배치로 처리
|
1174
|
+
batch_size = 1000
|
1175
|
+
total_lines = file_data.size
|
1176
|
+
|
1177
|
+
threads = [] # 스레드 배열
|
1178
|
+
(0..total_lines - 1).step(batch_size) do |i|
|
1179
|
+
batch = file_data[i, batch_size] # 배치 크기만큼 처리
|
1180
|
+
|
1181
|
+
# 각 배치마다 새로운 스레드로 처리
|
1182
|
+
threads << Thread.new do
|
1183
|
+
batch.each do |line|
|
1184
|
+
i3 = line.to_s.force_encoding('utf-8')
|
1185
|
+
i2 = i3.split(',')
|
1186
|
+
|
1187
|
+
# 데이터를 큐에 추가
|
1188
|
+
queue << [false, i2[0].to_s, 1, 1, 0, 0]
|
1189
|
+
end
|
1190
|
+
end
|
1191
|
+
end
|
1192
|
+
|
1193
|
+
# 모든 스레드가 끝날 때까지 대기
|
1194
|
+
threads.each(&:join)
|
1195
|
+
|
1196
|
+
# 메인 스레드에서 큐에 있는 데이터를 처리
|
1197
|
+
Thread.new do
|
1198
|
+
# 큐에서 데이터를 하나씩 꺼내어 @data['table']에 추가
|
1199
|
+
until queue.empty?
|
1200
|
+
item = queue.pop
|
1201
|
+
@data['table'] << item
|
1202
|
+
end
|
1203
|
+
|
1204
|
+
# 테이블에서 마지막 데이터 삭제
|
1205
|
+
@data['table'].pop
|
1206
|
+
|
1207
|
+
# UI 갱신 (메인 스레드에서 UI 업데이트)
|
1208
|
+
|
1209
|
+
end
|
1210
|
+
ensure
|
1211
|
+
file_data.clear
|
1212
|
+
end
|
1172
1213
|
end
|
1173
1214
|
end
|
1174
1215
|
}
|
1175
1216
|
}
|
1176
1217
|
|
1177
|
-
|
1178
1218
|
|
1179
1219
|
|
1180
1220
|
|
1181
|
-
|
1182
|
-
|
1183
|
-
|
1184
|
-
|
1185
|
-
|
1186
|
-
|
1187
|
-
|
1188
|
-
|
1189
|
-
|
1190
|
-
|
1191
|
-
}
|
1221
|
+
button('그룹 전체 선택') {
|
1222
|
+
top 0
|
1223
|
+
left 3
|
1224
|
+
on_clicked {
|
1225
|
+
# @data['table']의 모든 항목을 선택 상태로 변경
|
1226
|
+
@data['table'].map! { |row| row[0] = true; row }
|
1227
|
+
|
1228
|
+
# UI 갱신 (필요에 따라 호출)
|
1229
|
+
# 예시: UI 업데이트 코드가 필요하다면 호출
|
1230
|
+
# update_ui
|
1192
1231
|
}
|
1193
|
-
|
1194
|
-
|
1195
|
-
|
1196
|
-
|
1197
|
-
|
1198
|
-
|
1199
|
-
|
1200
|
-
|
1201
|
-
|
1202
|
-
|
1232
|
+
}
|
1233
|
+
|
1234
|
+
button('그룹 선택 해제') {
|
1235
|
+
top 0
|
1236
|
+
left 4
|
1237
|
+
on_clicked {
|
1238
|
+
# @data['table']의 모든 항목을 선택 해제 상태로 변경
|
1239
|
+
@data['table'].map! { |row| row[0] = false; row }
|
1240
|
+
|
1241
|
+
# UI 갱신 (필요하다면 추가)
|
1242
|
+
# 예시: UI 업데이트 코드가 필요하다면 호출
|
1243
|
+
# update_ui
|
1203
1244
|
}
|
1204
|
-
|
1205
|
-
|
1206
|
-
|
1207
|
-
|
1208
|
-
|
1209
|
-
|
1210
|
-
|
1211
|
-
|
1212
|
-
|
1213
|
-
|
1214
|
-
|
1215
|
-
|
1216
|
-
@data['table'].delete_at(i)
|
1217
|
-
end
|
1218
|
-
@data.delete(nil)
|
1219
|
-
}
|
1245
|
+
}
|
1246
|
+
|
1247
|
+
button('그룹 선택 삭제') {
|
1248
|
+
top 0
|
1249
|
+
left 5
|
1250
|
+
on_clicked {
|
1251
|
+
# 선택된 항목을 제외한 새로운 배열을 만들어서 빠르게 삭제
|
1252
|
+
@data['table'].reject! { |row| row[0] == true }
|
1253
|
+
|
1254
|
+
# UI 갱신 (필요하다면 추가)
|
1255
|
+
# 예시: UI 업데이트 코드가 필요하다면 호출
|
1256
|
+
# update_ui
|
1220
1257
|
}
|
1258
|
+
}
|
1221
1259
|
}
|
1222
1260
|
}
|
1223
1261
|
|
@@ -1253,34 +1291,38 @@ class Wordpress
|
|
1253
1291
|
|
1254
1292
|
|
1255
1293
|
|
1256
|
-
grid{
|
1257
|
-
|
1258
|
-
|
1259
|
-
|
1260
|
-
|
1261
|
-
|
1262
|
-
|
1263
|
-
|
1264
|
-
|
1265
|
-
|
1266
|
-
|
1267
|
-
}
|
1268
|
-
|
1269
|
-
|
1270
|
-
button(' 전체 그룹 적용하기 '){
|
1271
|
-
top 1
|
1272
|
-
left 2
|
1273
|
-
on_clicked{
|
1274
|
-
for n in 0..@data['table'].length-1
|
1275
|
-
@data['table'][n][2] = @data['table_counter_input'].text.to_i
|
1276
|
-
@data['table'][n][3] = @data['table_delay_input'].text.to_i
|
1277
|
-
@data['table'] << []
|
1278
|
-
@data['table'].pop
|
1279
|
-
end
|
1294
|
+
grid {
|
1295
|
+
stretchy false
|
1296
|
+
@data['table_counter_input'] = entry {
|
1297
|
+
text '그룹 당 발송 수 ex) 300'
|
1298
|
+
top 1
|
1299
|
+
left 0
|
1300
|
+
}
|
1301
|
+
@data['table_delay_input'] = entry {
|
1302
|
+
text '발송 딜레이(초 단위) ex)3'
|
1303
|
+
top 1
|
1304
|
+
left 1
|
1280
1305
|
}
|
1281
|
-
}
|
1282
1306
|
|
1283
|
-
|
1307
|
+
button(' 전체 그룹 적용하기 ') {
|
1308
|
+
top 1
|
1309
|
+
left 2
|
1310
|
+
on_clicked {
|
1311
|
+
# 입력값을 한 번만 변수에 저장
|
1312
|
+
table_counter_value = @data['table_counter_input'].text.to_i
|
1313
|
+
table_delay_value = @data['table_delay_input'].text.to_i
|
1314
|
+
|
1315
|
+
# @data['table']의 각 항목을 업데이트
|
1316
|
+
@data['table'].map! do |row|
|
1317
|
+
row[2] = table_counter_value
|
1318
|
+
row[3] = table_delay_value
|
1319
|
+
row # 수정된 row를 반환
|
1320
|
+
end
|
1321
|
+
}
|
1322
|
+
}
|
1323
|
+
}
|
1324
|
+
|
1325
|
+
|
1284
1326
|
}
|
1285
1327
|
}
|
1286
1328
|
}
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tg_send_zon
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- zon
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-12-
|
11
|
+
date: 2024-12-06 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: File to Clipboard gem
|
14
14
|
email: mymin26@naver.com
|