session-python 1.0.3__py3-none-any.whl → 1.0.5__py3-none-any.whl

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.
session_python/cli.py CHANGED
@@ -189,26 +189,31 @@ def main():
189
189
  p.start()
190
190
  processes.append(p)
191
191
 
192
- with Live(Text("Initializing search...", style="yellow"), refresh_per_second=10) as live:
192
+ if console.is_terminal:
193
+ with Live(Text("Initializing search...", style="yellow"), refresh_per_second=10, transient=True) as live:
194
+ while not stop_event.is_set() and result_queue.empty():
195
+ time.sleep(0.1)
196
+ checked = checked_counter.value
197
+ elapsed = time.time() - start_time
198
+ speed = checked / elapsed if elapsed > 0 else 0
199
+
200
+ if checked < total_expected:
201
+ remaining_checks = total_expected - checked
202
+ remaining_seconds = remaining_checks / speed if speed > 0 else 0
203
+ eta_str = format_time(remaining_seconds)
204
+ else:
205
+ avg_seconds = total_expected / speed if speed > 0 else 0
206
+ eta_str = f"running over (avg {format_time(avg_seconds)})"
207
+
208
+ live.update(Text(
209
+ f"Searching for ID starting with '05{prefix}' ({num_workers} threads)...\n"
210
+ f"Speed: {speed:.1f} id/sec | Checked: {checked}/{total_expected} | Time: {elapsed:.1f}s | ETA: {eta_str}",
211
+ style="cyan"
212
+ ))
213
+ else:
214
+ # Run silently in non-TTY mode (e.g. wrapped by setuptools exe or redirected)
193
215
  while not stop_event.is_set() and result_queue.empty():
194
216
  time.sleep(0.1)
195
- checked = checked_counter.value
196
- elapsed = time.time() - start_time
197
- speed = checked / elapsed if elapsed > 0 else 0
198
-
199
- if checked < total_expected:
200
- remaining_checks = total_expected - checked
201
- remaining_seconds = remaining_checks / speed if speed > 0 else 0
202
- eta_str = format_time(remaining_seconds)
203
- else:
204
- avg_seconds = total_expected / speed if speed > 0 else 0
205
- eta_str = f"running over (avg {format_time(avg_seconds)})"
206
-
207
- live.update(Text(
208
- f"Searching for ID starting with '05{prefix}' ({num_workers} threads)...\n"
209
- f"Speed: {speed:.1f} id/sec | Checked: {checked}/{total_expected} | Time: {elapsed:.1f}s | ETA: {eta_str}",
210
- style="cyan"
211
- ))
212
217
 
213
218
  # Retrieve result and cleanup processes
214
219
  session_id, mnemonic = result_queue.get()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: session-python
3
- Version: 1.0.3
3
+ Version: 1.0.5
4
4
  Summary: A pure Python implementation of the Session Messenger protocol client
5
5
  Author-email: Towux <towux@users.noreply.github.com>
6
6
  Project-URL: Homepage, https://github.com/towux/session-python
@@ -1,5 +1,5 @@
1
1
  session_python/__init__.py,sha256=pUE3WQUcc1QEaI58Xa5qBRwSpGcOSwo8CbBbmB34OmM,89
2
- session_python/cli.py,sha256=T_xDDcrogTydQWdh9fUW_cSBEuxdGEru4y9-sXKc8GA,9885
2
+ session_python/cli.py,sha256=oBAEp-9aWjN55yCNEuSZ8SgWTVnQSEZn13WgFtoiqUU,10297
3
3
  session_python/client.py,sha256=HLqt_Zk2MZidNnIVhUcmC9yVWSJ_5YbCWvVYlbIk5sk,28729
4
4
  session_python/crypto.py,sha256=eouNI6lfXIFd7AqL8GOakLMMTeVvrDdZvIJvEHygc90,10527
5
5
  session_python/mnemonic.py,sha256=9j3r2KVawok1sZ3LuY8ThOfvpNTgLz0zTM8unXOhL3M,18952
@@ -7,9 +7,9 @@ session_python/network.py,sha256=50Usnv08R2TgqGq4VURivIzaFhVBOajAt8zaNsXhiL4,671
7
7
  session_python/polling.py,sha256=IaggPaEzMtxSD6gryaiimmW7OFFcDy1Wmqk0GByAPcU,8615
8
8
  session_python/protobuf/__init__.py,sha256=4rb44gL-mJV1hlfw6s7bgND1OHr8YlN-jTM-SzgchVY,19
9
9
  session_python/protobuf/signalservice_pb2.py,sha256=iBBjC0dBWlBS2gQe7mLkY_YlyjOaWlCaHl0rZyghR0c,14465
10
- session_python-1.0.3.dist-info/licenses/LICENSE,sha256=1EF7fItXLWrIq-VFUyWGfkNILQebdb_LS5CiT6B-qu4,1062
11
- session_python-1.0.3.dist-info/METADATA,sha256=z41K8ZVNlxGj3xp78ZaOQLggqFAw4Q8QCuz5-LKwKeI,6964
12
- session_python-1.0.3.dist-info/WHEEL,sha256=K260EYznzXsJYBQGqmI8VTxEdiZYNvDZwW9cBh9-_MA,91
13
- session_python-1.0.3.dist-info/entry_points.txt,sha256=ARn3FY9TtSioZO5Ybg_xdGszu91CDkfdDhQyJzqYmxs,50
14
- session_python-1.0.3.dist-info/top_level.txt,sha256=ud9usATeSN6ArJTxpZ_d19Gid7FAGR4kHubtN2-By9g,15
15
- session_python-1.0.3.dist-info/RECORD,,
10
+ session_python-1.0.5.dist-info/licenses/LICENSE,sha256=1EF7fItXLWrIq-VFUyWGfkNILQebdb_LS5CiT6B-qu4,1062
11
+ session_python-1.0.5.dist-info/METADATA,sha256=eMnwagisOA5DRbLYkFjNHhDkYQNPm66lrGwimWxqGx8,6964
12
+ session_python-1.0.5.dist-info/WHEEL,sha256=K260EYznzXsJYBQGqmI8VTxEdiZYNvDZwW9cBh9-_MA,91
13
+ session_python-1.0.5.dist-info/entry_points.txt,sha256=ARn3FY9TtSioZO5Ybg_xdGszu91CDkfdDhQyJzqYmxs,50
14
+ session_python-1.0.5.dist-info/top_level.txt,sha256=ud9usATeSN6ArJTxpZ_d19Gid7FAGR4kHubtN2-By9g,15
15
+ session_python-1.0.5.dist-info/RECORD,,