lanscape 1.2.8a1__py3-none-any.whl → 1.2.8a3__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.

Potentially problematic release.


This version of lanscape might be problematic. Click here for more details.

@@ -16,7 +16,9 @@ latest = None # used to 'remember' pypi version each runtime
16
16
  def is_update_available(package=PACKAGE) -> bool:
17
17
  installed = get_installed_version(package)
18
18
  available = lookup_latest_version(package)
19
- if installed == LOCAL_VERSION: return False #local
19
+ if installed == LOCAL_VERSION: return False # local
20
+ if 'a' in installed: return False # alpha
21
+ if 'b' in installed: return False # beta
20
22
 
21
23
  return installed != available
22
24
 
lanscape/ui/app.py CHANGED
@@ -106,8 +106,6 @@ def start_webserver(args: RuntimeArgs) -> int:
106
106
 
107
107
  app.run(**run_args)
108
108
 
109
-
110
-
111
109
  if __name__ == "__main__":
112
110
  start_webserver(True)
113
111
 
lanscape/ui/main.py CHANGED
@@ -13,6 +13,7 @@ configure_logging(args.loglevel, args.logfile)
13
13
 
14
14
  from ..libraries.version_manager import get_installed_version, is_update_available
15
15
  from .app import start_webserver
16
+ import socket
16
17
 
17
18
 
18
19
  log = logging.getLogger('core')
@@ -27,9 +28,12 @@ def main():
27
28
  if not IS_FLASK_RELOAD:
28
29
  log.info(f'LANscape v{get_installed_version()}')
29
30
  try_check_update()
30
- else:
31
+
32
+ else:
31
33
  log.info('Flask reloaded app.')
32
34
 
35
+ args.port = get_valid_port(args.port)
36
+
33
37
 
34
38
  try:
35
39
 
@@ -63,9 +67,8 @@ def open_browser(url: str,wait=2):
63
67
  time.sleep(wait)
64
68
  webbrowser.open(url, new=2)
65
69
  except:
66
- srv_url = f"0.0.0.0:{url.split(':')[1]}"
67
70
  log.debug(traceback.format_exc())
68
- log.info(f'unable to open web browser, server running on {srv_url}')
71
+ log.info(f'Unable to open web browser, server running on {url}')
69
72
 
70
73
  threading.Thread(target=do_open).start()
71
74
 
@@ -74,13 +77,21 @@ def no_gui(args: RuntimeArgs):
74
77
  # if it was, dont open the browser again
75
78
  if not IS_FLASK_RELOAD:
76
79
  open_browser(f'http://127.0.0.1:{args.port}')
77
-
78
- log.info(f'Server started: http://127.0.0.1:{args.port}')
80
+ log.info(f'Flask started: http://127.0.0.1:{args.port}')
79
81
 
80
82
  start_webserver(
81
83
  args
82
84
  )
83
85
 
86
+ def get_valid_port(port: int):
87
+ """
88
+ Get the first available port starting from the specified port
89
+ """
90
+ while True:
91
+ with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
92
+ if s.connect_ex(('localhost', port)) != 0:
93
+ return port
94
+ port += 1
84
95
 
85
96
  if __name__ == "__main__":
86
97
  main()
@@ -460,8 +460,15 @@ input[type="range"]::-moz-range-thumb {
460
460
  }
461
461
 
462
462
  .text-secondary {
463
- color: var(--secondary-accent)
463
+ color: var(--secondary-accent) !important;
464
464
  }
465
+ .text-danger {
466
+ color: var(--text-danger-color) !important;
467
+ }
468
+ .text-info {
469
+ color: var(--text-accent-color) !important;
470
+ }
471
+
465
472
  .secondary-icon-btn {
466
473
  color: var(--secondary-accent);
467
474
  transition: .2s all ease-in-out;
@@ -11,10 +11,15 @@
11
11
  <div class="version">
12
12
  v{{app_version}}
13
13
  {% if is_local %}
14
- <span>(Local Run)</span>
14
+ <span class="text-info">(Local)</span>
15
15
  {% elif update_available %}
16
16
  <span>(Update Available)</span>
17
- {% endif %}
17
+ {% endif %}
18
+ {% if 'a' in app_version %}
19
+ <span class="text-danger">(Alpha)</span>
20
+ {% elif 'b' in app_version %}
21
+ <span class="text-info">(Beta)</span>
22
+ {% endif %}
18
23
  </div>
19
24
 
20
25
  <div id="app-actions">
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: lanscape
3
- Version: 1.2.8a1
3
+ Version: 1.2.8a3
4
4
  Summary: A python based local network scanner
5
5
  Author-email: Michael Dennis <michael@dipduo.com>
6
6
  Project-URL: Homepage, https://github.com/mdennis281/py-lanscape
@@ -32,17 +32,15 @@ python -m lanscape
32
32
 
33
33
  ## Flags
34
34
  - `--port <port number>` port of the flask app (default: 5001)
35
- - `--nogui` run in web mode (default: false)
36
35
  - `--reloader` essentially flask debug mode- good for local development (default: false)
37
36
  - `--logfile` save log output to lanscape.log
38
37
  - `--loglevel <level>` set the logger's log level (default: INFO)
39
- - `--headless` similar to nogui but doesnt try to open a browser (default: false)
40
38
 
41
39
 
42
40
  Examples:
43
41
  ```shell
44
42
  python -m lanscape --reloader
45
- python -m lanscape --nogui --port 5002
43
+ python -m lanscape --port 5002
46
44
  python -m lanscape --logfile --loglevel DEBUG
47
45
  ```
48
46
 
@@ -10,7 +10,7 @@ lanscape/libraries/net_tools.py,sha256=zWWvKon46i3ImhaGg2IpCV-Cx01-jFBBZCIHHHyFm
10
10
  lanscape/libraries/port_manager.py,sha256=fNext3FNfGnGYRZK9RhTEwQ2K0e0YmmMlhK4zVAvoCw,1977
11
11
  lanscape/libraries/runtime_args.py,sha256=JJTzWgQ-0aRh7Ce5efIwBmHZv1LfWjFagtNUNlLN7Uo,1660
12
12
  lanscape/libraries/subnet_scan.py,sha256=2BW69tbntqEujiqsdlQruLHfoAwnFrv6OLMhvQWauYM,11191
13
- lanscape/libraries/version_manager.py,sha256=MQ9hOZqiK_fe0jQR9FsbiSW52zKpryPFT6p8fQdKWTM,1505
13
+ lanscape/libraries/version_manager.py,sha256=wdB5DPW8IjHJfgvT4mUKz7ndEV922WgVEqbwd6jfun4,1599
14
14
  lanscape/resources/mac_addresses/convert_csv.py,sha256=w3Heed5z2mHYDEZNBep3_hNg4dbrp_N6J54MGxnrq4s,721
15
15
  lanscape/resources/mac_addresses/mac_db.json,sha256=ygtFSwNwJzDlg6hmAujdgCyzUjxt9Di75J8SO4xYIs8,2187804
16
16
  lanscape/resources/ports/convert_csv.py,sha256=mWe8zucWVfnlNEx_ZzH5Vc3tJJbdi-Ih4nm2yKNrRN0,720
@@ -23,8 +23,8 @@ lanscape/tests/_helpers.py,sha256=wXJfUwzL3Fq4XBsC3dValCbXsf0U8FisuM_yo1de4QQ,37
23
23
  lanscape/tests/test_api.py,sha256=fIVIA6O9ssPRjofTHLS6z7XPNTkvv2rl2jDaxVCjFGU,5669
24
24
  lanscape/tests/test_env.py,sha256=ivFhCcemJ9vbe0_KtUkbqDY4r9nsDB8rVLUVjV-sNj8,673
25
25
  lanscape/tests/test_library.py,sha256=u-UBx76Dyh2xLhiCNxnzv7lIsWoUGKUtbPqkVUg7xwE,1552
26
- lanscape/ui/app.py,sha256=HAH6IlJWJD3Mkwj1Z5h1hvk3U09ekwvg66Gfasphv54,3194
27
- lanscape/ui/main.py,sha256=0JOGmYOSMwYPc66Q5c9fVHN92KZCzgPjLNWtwJgMlWM,2373
26
+ lanscape/ui/app.py,sha256=hGmzoyH4YW2WmQsqZ6v-9r5DYzWi2KYP6_toZSxQqFg,3186
27
+ lanscape/ui/main.py,sha256=HMQythH0fijX1Mt9fGQBcqmY37dQQ19ROC99JbCNAvs,2701
28
28
  lanscape/ui/blueprints/__init__.py,sha256=agvgPOSVbrxddaw6EY64ZZr1CQi1Qzwcs1t0lZMv5oY,206
29
29
  lanscape/ui/blueprints/api/__init__.py,sha256=t0QOq3vHFWmlZm_3YFPQbQzCn1a_a5cmRchtIxwy4eY,103
30
30
  lanscape/ui/blueprints/api/port.py,sha256=2UA38umzXE8pMitx1E-_wJHyL1dYYbtM6Kg5zVtfj6A,1019
@@ -33,7 +33,7 @@ lanscape/ui/blueprints/api/tools.py,sha256=CD0NDSX8kN6_lpl0jEw-ULLsDx7pKODCMFQia
33
33
  lanscape/ui/blueprints/web/__init__.py,sha256=-WRjENG8D99NfaiSDk9uAa8OX6XJq9Zmq1ck29ARL-w,92
34
34
  lanscape/ui/blueprints/web/routes.py,sha256=9S-xDBnUR-8Wf-B0fipBNFeTz-xiHhHy0WmhW9qWqZk,2166
35
35
  lanscape/ui/static/lanscape.webmanifest,sha256=0aauJk_Bybd0B2iwzJfvPcs7AX43kVHs0dtpV6_jSWk,459
36
- lanscape/ui/static/css/style.css,sha256=UECPZTx2vm7Ntgvm3dAaCq8sFyG_xmkx2HgorSa7rIs,15653
36
+ lanscape/ui/static/css/style.css,sha256=LbQ4O98uttwY2Msxv9XnniOTzZApGsqkFg8PCoe1ZcQ,15801
37
37
  lanscape/ui/static/img/ico/android-chrome-192x192.png,sha256=DxM2E9GjpKX-hSaSmAoW0GxLJ2fdXKJ-WOgoxYlDybw,24130
38
38
  lanscape/ui/static/img/ico/android-chrome-512x512.png,sha256=UoL_8UdhGU1q2_XkJ2T7QojgcNnz7FrBChlVRaMOWIs,73788
39
39
  lanscape/ui/static/img/ico/apple-touch-icon.png,sha256=Yhzhva3J_wjnC3zk2e7GXhEVNLozGVE_IjQkg4R5Ip4,21664
@@ -48,7 +48,7 @@ lanscape/ui/static/js/quietReload.js,sha256=_mHzpUsGL4Lm1hNsr3VYSOGVcgGA2y1-eZHa
48
48
  lanscape/ui/static/js/shutdown-server.js,sha256=WkO7_SNSHM_6kReUoCoExIdCf7Sl7IPiSiNxpbI-r0s,469
49
49
  lanscape/ui/static/js/subnet-info.js,sha256=aytt0LkBx4FVq36TxiMEw3aM7XQLHg_ng1U2WDwZVF4,577
50
50
  lanscape/ui/static/js/subnet-selector.js,sha256=OG01pDaSOPLq3Ial0aO0CqPcob9tPZA1MZKGmQG0W7Q,366
51
- lanscape/ui/templates/base.html,sha256=zFG5MjG1kSEXE6nF8gpSw1Ff75kIpRmeJV5i5H876hY,1263
51
+ lanscape/ui/templates/base.html,sha256=P5xnMlvDXYkYSXdSZUWaRfhsszNuZPP7A56hemBrAFs,1498
52
52
  lanscape/ui/templates/error.html,sha256=zXFO0zPIfQORWq1ZMiSZ8G7FjfhVVr-aaYC0HeBl4Rs,1068
53
53
  lanscape/ui/templates/info.html,sha256=oCC59keGEfgUB4WaCozaeZEfNb8Nr7y61DmkRBMqs18,2461
54
54
  lanscape/ui/templates/main.html,sha256=M12xJSN6Ga565vIPhdCiqcr1tYgDrqzuQTeuXtk-8yo,3759
@@ -61,8 +61,8 @@ lanscape/ui/templates/scan/ip-table-row.html,sha256=ptY24rxJRaA4PEEQRDncaq6Q0ql5
61
61
  lanscape/ui/templates/scan/ip-table.html,sha256=ds__UP9JiTKf5IxCmTMzw--eN_yg1Pvn3Nj1KvQxeZg,940
62
62
  lanscape/ui/templates/scan/overview.html,sha256=Q0gmkVI-xNLZ-zWA9qm4H14cv_eF_bQs1KYPyAaoHLY,1141
63
63
  lanscape/ui/templates/scan/scan-error.html,sha256=Q4eZM5ThrxnFaWOSTUpK8hA2ksHwhxOBTaVUCLALhyA,1032
64
- lanscape-1.2.8a1.dist-info/LICENSE,sha256=cCO-NbS01Ilwc6djHjZ7LIgPFRkRmWdr0fH2ysXKioA,1090
65
- lanscape-1.2.8a1.dist-info/METADATA,sha256=7xDqZ3e0HfGTuy1jo0NI5_9bqxguj8ccJspdLHg4LBY,2583
66
- lanscape-1.2.8a1.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
67
- lanscape-1.2.8a1.dist-info/top_level.txt,sha256=E9D4sjPz_6H7c85Ycy_pOS2xuv1Wm-ilKhxEprln2ps,9
68
- lanscape-1.2.8a1.dist-info/RECORD,,
64
+ lanscape-1.2.8a3.dist-info/LICENSE,sha256=cCO-NbS01Ilwc6djHjZ7LIgPFRkRmWdr0fH2ysXKioA,1090
65
+ lanscape-1.2.8a3.dist-info/METADATA,sha256=-Zu4Dm6pAjzV5VAZhdQvOSBVUBUzXu2vOZj5-w5TlLQ,2444
66
+ lanscape-1.2.8a3.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
67
+ lanscape-1.2.8a3.dist-info/top_level.txt,sha256=E9D4sjPz_6H7c85Ycy_pOS2xuv1Wm-ilKhxEprln2ps,9
68
+ lanscape-1.2.8a3.dist-info/RECORD,,