Adding polybar and dedupbw
This commit is contained in:
		
							parent
							
								
									52542754c8
								
							
						
					
					
						commit
						6fea3e862b
					
				
					 6 changed files with 148 additions and 159 deletions
				
			
		| 
						 | 
				
			
			@ -64,12 +64,12 @@
 | 
			
		|||
(local alt "Mod1")
 | 
			
		||||
 | 
			
		||||
;; Set hostname so that we can utilize specific features on different machines
 | 
			
		||||
(global laptop true)
 | 
			
		||||
(awful.spawn.easy_async "hostname" (fn [ stdout stderr reason exit_code ]
 | 
			
		||||
                                       (if (= "chris-linuxlaptop\n" stdout)
 | 
			
		||||
                                           (global laptop true)
 | 
			
		||||
                                           (naughty.notify {:text "didn't set"}))))
 | 
			
		||||
(if laptop (naughty.notify {:text "yayyayayayayayyay"}))
 | 
			
		||||
(naughty.notify {:text (tostring laptop)})
 | 
			
		||||
(if laptop (naughty.notify {:text "laptop detected"}))
 | 
			
		||||
 | 
			
		||||
;; Table of layouts to cover with awful.layout.inc, order matters.
 | 
			
		||||
(set awful.layout.layouts [
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -14,9 +14,10 @@
 | 
			
		|||
    (let [cb (or ?callback (fn [] nil))]
 | 
			
		||||
      (awful.spawn.easy_async_with_shell "pamixer --get-volume-human" cb)))
 | 
			
		||||
 | 
			
		||||
(if (= "chris-linuxlaptop" (awful.spawn "hostname"))
 | 
			
		||||
    (global bwmenu "bwmenu -- -config /home/chris/.dotfiles/rofi/launchers-git/laptop.rasi")
 | 
			
		||||
    (global bwmenu "bwmenu -- -config /home/chris/.dotfiles/rofi/launchers-git/desktop.rasi"))
 | 
			
		||||
(awful.spawn.easy_async "cat /etc/hostname" (fn [ stdout stderr reason exit_code ]
 | 
			
		||||
                                                (if (= "chris-linuxlaptop\n" stdout)
 | 
			
		||||
                                                    (global bwmenu "bwmenu -- -config /home/chris/.dotfiles/rofi/launchers-git/laptop.rasi")
 | 
			
		||||
                                                    (global bwmenu "bwmenu -- -config /home/chris/.dotfiles/rofi/launchers-git/desktop.rasi"))))
 | 
			
		||||
 | 
			
		||||
(local keybindings
 | 
			
		||||
       {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,6 +1,6 @@
 | 
			
		|||
#!/usr/bin/env fish
 | 
			
		||||
 | 
			
		||||
set -U fish_user_paths $HOME/.local/bin $HOME/scripts $HOME/.doom-emacs/bin
 | 
			
		||||
set -U fish_user_paths $HOME/.local/bin $HOME/scripts $HOME/.doom-emacs/bin $HOME/.emacs.d/bin
 | 
			
		||||
set TERM "xterm-256color"
 | 
			
		||||
set EDITOR "emacsclient -t -a"
 | 
			
		||||
set VISUAL "emacsclient -c -a emacs"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -30,4 +30,4 @@ SETUVAR fish_pager_color_completion:\x1d
 | 
			
		|||
SETUVAR fish_pager_color_description:B3A06D\x1eyellow
 | 
			
		||||
SETUVAR fish_pager_color_prefix:white\x1e\x2d\x2dbold\x1e\x2d\x2dunderline
 | 
			
		||||
SETUVAR fish_pager_color_progress:brwhite\x1e\x2d\x2dbackground\x3dcyan
 | 
			
		||||
SETUVAR fish_user_paths:/home/chris/\x2elocal/bin\x1e/home/chris/scripts\x1e/home/chris/\x2edoom\x2demacs/bin
 | 
			
		||||
SETUVAR fish_user_paths:/home/chris/\x2elocal/bin\x1e/home/chris/scripts\x1e/home/chris/\x2edoom\x2demacs/bin\x1e/home/chris/\x2eemacs\x2ed/bin
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										214
									
								
								polybar/config
									
										
									
									
									
								
							
							
						
						
									
										214
									
								
								polybar/config
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -21,64 +21,56 @@
 | 
			
		|||
background = #282a36
 | 
			
		||||
background-alt = #34353e
 | 
			
		||||
;foreground = ${xrdb:color7:#222}
 | 
			
		||||
foreground = #e3e4e5
 | 
			
		||||
foreground-alt = #a5a5a9
 | 
			
		||||
primary = #ff9f43
 | 
			
		||||
secondary = #57c7ff
 | 
			
		||||
foreground = #a5a5a9
 | 
			
		||||
foreground-alt = #e2e4e5
 | 
			
		||||
primary = #57c7ff
 | 
			
		||||
secondary = #f3f99d
 | 
			
		||||
alert = #ff5c57
 | 
			
		||||
green= #5af78e
 | 
			
		||||
 | 
			
		||||
[bar/main]
 | 
			
		||||
[bar/float]
 | 
			
		||||
;monitor = ${env:MONITOR:HDMI-1}
 | 
			
		||||
width = 100%
 | 
			
		||||
height = 27
 | 
			
		||||
; offset-x = 6%
 | 
			
		||||
offset-y = 0.5%
 | 
			
		||||
radius = 12.0
 | 
			
		||||
height = 60
 | 
			
		||||
;offset-x = 1%
 | 
			
		||||
;offset-y = 1%
 | 
			
		||||
radius = 28.0
 | 
			
		||||
fixed-center = true
 | 
			
		||||
bottom = true
 | 
			
		||||
 | 
			
		||||
background = ${colors.background}
 | 
			
		||||
foreground = ${colors.foreground}
 | 
			
		||||
 | 
			
		||||
line-size = 2
 | 
			
		||||
line-color = ${colors.secondary}
 | 
			
		||||
line-size = 3
 | 
			
		||||
line-color = #f00
 | 
			
		||||
 | 
			
		||||
border-size = 4
 | 
			
		||||
border-size = 15
 | 
			
		||||
border-color = #00000000
 | 
			
		||||
 | 
			
		||||
padding-left = 0
 | 
			
		||||
padding-left = 13
 | 
			
		||||
padding-right = 2
 | 
			
		||||
 | 
			
		||||
module-margin-left = 1
 | 
			
		||||
module-margin-right = 2
 | 
			
		||||
module-margin-right = 1
 | 
			
		||||
 | 
			
		||||
font-0 = "fixed:pixelsize=12;1"
 | 
			
		||||
font-1 = "Unifont:style=Sans-Serif:size=12:antialias=false;0"
 | 
			
		||||
font-2 = "Wuncon Siji:pixelsize=12;1"
 | 
			
		||||
font-3 = "Recursive Sans Linear Light:size=10;1"
 | 
			
		||||
font-4 = "Noto Sans:size=10;1"
 | 
			
		||||
font-5 = "Noto Color Emoji:style=Regular:size=10;1"
 | 
			
		||||
font-0 = VictorMono Nerd Font Mono:size=20;1
 | 
			
		||||
font-1 = unifont:fontformat=truetype:size=19:antialias=false;0
 | 
			
		||||
font-2 = siji:pixelsize=30;1
 | 
			
		||||
font-3 = all-the-icons:size=40;1
 | 
			
		||||
 | 
			
		||||
modules-left = xwindow
 | 
			
		||||
modules-center = date
 | 
			
		||||
modules-right = filesystem pulseaudio memory cpu eth temperature powermenu
 | 
			
		||||
modules-left = exwm-buffer-name
 | 
			
		||||
modules-center = date 
 | 
			
		||||
modules-right = filesystem exwm-mail xbacklight pulseaudio memory cpu wlan battery powermenu
 | 
			
		||||
 | 
			
		||||
tray-position = center
 | 
			
		||||
tray-detatched = false
 | 
			
		||||
tray-padding = 4
 | 
			
		||||
tray-maxsize = 16
 | 
			
		||||
tray-scale = 1
 | 
			
		||||
tray-offset-x = 200
 | 
			
		||||
tray-offset-y = 1
 | 
			
		||||
tray-background = ${colors.background}
 | 
			
		||||
tray-radius = 12.0
 | 
			
		||||
 | 
			
		||||
enable-ipc = true
 | 
			
		||||
tray-padding = 5
 | 
			
		||||
tray-maxsize = 30
 | 
			
		||||
tray-offset-x = -1400
 | 
			
		||||
 | 
			
		||||
;wm-restack = bspwm
 | 
			
		||||
;wm-restack = i3
 | 
			
		||||
 | 
			
		||||
override-redirect = false
 | 
			
		||||
;override-redirect = true
 | 
			
		||||
 | 
			
		||||
;scroll-up = bspwm-desknext
 | 
			
		||||
;scroll-down = bspwm-deskprev
 | 
			
		||||
| 
						 | 
				
			
			@ -89,30 +81,24 @@ override-redirect = false
 | 
			
		|||
cursor-click = pointer
 | 
			
		||||
cursor-scroll = ns-resize
 | 
			
		||||
 | 
			
		||||
[settings]
 | 
			
		||||
enable-ipc = true
 | 
			
		||||
 | 
			
		||||
throttle-output = 5
 | 
			
		||||
throttle-output-for = 10
 | 
			
		||||
throttle-input-for = 30
 | 
			
		||||
[module/exwm-buffer-name]
 | 
			
		||||
type = custom/ipc
 | 
			
		||||
hook-0 = emacsclient -e "(buffer-name)"
 | 
			
		||||
initial = 1
 | 
			
		||||
format-foreground = ${colors.primary}
 | 
			
		||||
 | 
			
		||||
screenchange-reload = false
 | 
			
		||||
 | 
			
		||||
compositing-background = source
 | 
			
		||||
compositing-foreground = over
 | 
			
		||||
compositing-overline = over
 | 
			
		||||
compositing-underline = over
 | 
			
		||||
compositing-border = over
 | 
			
		||||
 | 
			
		||||
;compositing-background = xor
 | 
			
		||||
;compositing-background = screen
 | 
			
		||||
;compositing-foreground = source
 | 
			
		||||
;compositing-border = over
 | 
			
		||||
 | 
			
		||||
pseudo-transparency = false
 | 
			
		||||
[module/exwm-mail]
 | 
			
		||||
type = custom/ipc
 | 
			
		||||
hook-0 = emacsclient -e "mu4e-alert-mode-line"
 | 
			
		||||
initial = 1
 | 
			
		||||
format-prefix = " "
 | 
			
		||||
format-prefix-foreground = ${colors.secondary}
 | 
			
		||||
 | 
			
		||||
[module/xwindow]
 | 
			
		||||
type = internal/xwindow
 | 
			
		||||
label = "     %title:0:30:...%"
 | 
			
		||||
label = %title:0:30:...%
 | 
			
		||||
 | 
			
		||||
[module/xkeyboard]
 | 
			
		||||
type = internal/xkeyboard
 | 
			
		||||
| 
						 | 
				
			
			@ -140,86 +126,13 @@ label-mounted = %{F#0a81f5}%mountpoint%%{F-}: %percentage_used%%
 | 
			
		|||
label-unmounted = %mountpoint% not mounted
 | 
			
		||||
label-unmounted-foreground = ${colors.foreground-alt}
 | 
			
		||||
 | 
			
		||||
; [module/bspwm]
 | 
			
		||||
; type = internal/bspwm
 | 
			
		||||
 | 
			
		||||
; label-focused = %index%
 | 
			
		||||
; label-focused-background = ${colors.background-alt}
 | 
			
		||||
; label-focused-underline= ${colors.primary}
 | 
			
		||||
; label-focused-padding = 2
 | 
			
		||||
 | 
			
		||||
; label-occupied = %index%
 | 
			
		||||
; label-occupied-padding = 2
 | 
			
		||||
 | 
			
		||||
; label-urgent = %index%!
 | 
			
		||||
; label-urgent-background = ${colors.alert}
 | 
			
		||||
; label-urgent-padding = 2
 | 
			
		||||
 | 
			
		||||
; label-empty = %index%
 | 
			
		||||
; label-empty-foreground = ${colors.foreground-alt}
 | 
			
		||||
; label-empty-padding = 2
 | 
			
		||||
 | 
			
		||||
; Separator in between workspaces
 | 
			
		||||
; label-separator = |
 | 
			
		||||
 | 
			
		||||
; [module/i3]
 | 
			
		||||
; type = internal/i3
 | 
			
		||||
; format = <label-state> <label-mode>
 | 
			
		||||
; index-sort = true
 | 
			
		||||
; wrapping-scroll = false
 | 
			
		||||
 | 
			
		||||
; ; Only show workspaces on the same output as the bar
 | 
			
		||||
; ;pin-workspaces = true
 | 
			
		||||
 | 
			
		||||
; label-mode-padding = 2
 | 
			
		||||
; label-mode-foreground = #000
 | 
			
		||||
; label-mode-background = ${colors.primary}
 | 
			
		||||
 | 
			
		||||
; ; focused = Active workspace on focused monitor
 | 
			
		||||
; label-focused = %index%
 | 
			
		||||
; label-focused-background = ${colors.background-alt}
 | 
			
		||||
; label-focused-underline= ${colors.primary}
 | 
			
		||||
; label-focused-padding = 2
 | 
			
		||||
 | 
			
		||||
; ; unfocused = Inactive workspace on any monitor
 | 
			
		||||
; label-unfocused = %index%
 | 
			
		||||
; label-unfocused-padding = 2
 | 
			
		||||
 | 
			
		||||
; ; visible = Active workspace on unfocused monitor
 | 
			
		||||
; label-visible = %index%
 | 
			
		||||
; label-visible-background = ${self.label-focused-background}
 | 
			
		||||
; label-visible-underline = ${self.label-focused-underline}
 | 
			
		||||
; label-visible-padding = ${self.label-focused-padding}
 | 
			
		||||
 | 
			
		||||
; ; urgent = Workspace with urgency hint set
 | 
			
		||||
; label-urgent = %index%
 | 
			
		||||
; label-urgent-background = ${colors.alert}
 | 
			
		||||
; label-urgent-padding = 2
 | 
			
		||||
 | 
			
		||||
; ; Separator in between workspaces
 | 
			
		||||
; ; label-separator = |
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
; [module/mpd]
 | 
			
		||||
; type = internal/mpd
 | 
			
		||||
; format-online = <label-song>  <icon-prev> <icon-stop> <toggle> <icon-next>
 | 
			
		||||
 | 
			
		||||
; icon-prev = 
 | 
			
		||||
; icon-stop = 
 | 
			
		||||
; icon-play = 
 | 
			
		||||
; icon-pause = 
 | 
			
		||||
; icon-next = 
 | 
			
		||||
 | 
			
		||||
; label-song-maxlen = 24
 | 
			
		||||
; label-song-ellipsis = true
 | 
			
		||||
 | 
			
		||||
[module/xbacklight]
 | 
			
		||||
type = internal/xbacklight
 | 
			
		||||
 | 
			
		||||
format = <label> <bar>
 | 
			
		||||
label = BL
 | 
			
		||||
 | 
			
		||||
bar-width = 10
 | 
			
		||||
bar-width = 5
 | 
			
		||||
bar-indicator = |
 | 
			
		||||
bar-indicator-foreground = #fff
 | 
			
		||||
bar-indicator-font = 2
 | 
			
		||||
| 
						 | 
				
			
			@ -238,29 +151,20 @@ card = intel_backlight
 | 
			
		|||
[module/cpu]
 | 
			
		||||
type = internal/cpu
 | 
			
		||||
interval = 2
 | 
			
		||||
format = <ramp-load> <label>
 | 
			
		||||
format-prefix = " "
 | 
			
		||||
format-prefix = " "
 | 
			
		||||
format-prefix-foreground = ${colors.foreground-alt}
 | 
			
		||||
format-underline = #f90000
 | 
			
		||||
label = %percentage:2%%
 | 
			
		||||
 | 
			
		||||
ramp-load-spacing = 4
 | 
			
		||||
ramp-load-0 = ▁
 | 
			
		||||
ramp-load-1 = ▃
 | 
			
		||||
ramp-load-2 = ▅
 | 
			
		||||
ramp-load-3 = ▇
 | 
			
		||||
 | 
			
		||||
[module/memory]
 | 
			
		||||
type = internal/memory
 | 
			
		||||
interval = 2
 | 
			
		||||
format-prefix = " "
 | 
			
		||||
format-prefix = " "
 | 
			
		||||
format-prefix-foreground = ${colors.foreground-alt}
 | 
			
		||||
format-underline = ${colors.alert}
 | 
			
		||||
label = %percentage_used%%
 | 
			
		||||
 | 
			
		||||
[module/wlan]
 | 
			
		||||
type = internal/network
 | 
			
		||||
interface = net1
 | 
			
		||||
interface = wlp3s0
 | 
			
		||||
interval = 3.0
 | 
			
		||||
 | 
			
		||||
format-connected = <ramp-signal> <label-connected>
 | 
			
		||||
| 
						 | 
				
			
			@ -282,10 +186,9 @@ ramp-signal-foreground = ${colors.foreground-alt}
 | 
			
		|||
 | 
			
		||||
[module/eth]
 | 
			
		||||
type = internal/network
 | 
			
		||||
interface = enp0s31f6
 | 
			
		||||
interface = enp0s20f0u4u2
 | 
			
		||||
interval = 3.0
 | 
			
		||||
 | 
			
		||||
format-connected = <label-connected>
 | 
			
		||||
format-connected-underline = #55aa55
 | 
			
		||||
format-connected-prefix = " "
 | 
			
		||||
format-connected-prefix-foreground = ${colors.foreground-alt}
 | 
			
		||||
| 
						 | 
				
			
			@ -301,17 +204,16 @@ format-disconnected =
 | 
			
		|||
type = internal/date
 | 
			
		||||
interval = 5
 | 
			
		||||
 | 
			
		||||
date = "%a %b %d"
 | 
			
		||||
date = "%a %b %e, "
 | 
			
		||||
date-alt = " %Y-%m-%d"
 | 
			
		||||
 | 
			
		||||
time = %I:%M %p
 | 
			
		||||
time-alt = %I:%M:%S
 | 
			
		||||
time = %l:%M %p
 | 
			
		||||
time-alt = %H:%M
 | 
			
		||||
 | 
			
		||||
format-prefix = 
 | 
			
		||||
format-prefix-foreground = ${colors.foreground-alt}
 | 
			
		||||
format-underline = #0a6cf5
 | 
			
		||||
 | 
			
		||||
label = %date% | %time%
 | 
			
		||||
label = %date%%time%
 | 
			
		||||
 | 
			
		||||
[module/pulseaudio]
 | 
			
		||||
type = internal/pulseaudio
 | 
			
		||||
| 
						 | 
				
			
			@ -344,7 +246,7 @@ bar-volume-empty-foreground = ${colors.foreground-alt}
 | 
			
		|||
type = internal/alsa
 | 
			
		||||
 | 
			
		||||
format-volume = <label-volume> <bar-volume>
 | 
			
		||||
label-volume = VOL %percentage%
 | 
			
		||||
label-volume = VOL
 | 
			
		||||
label-volume-foreground = ${root.foreground}
 | 
			
		||||
 | 
			
		||||
format-muted-prefix = " "
 | 
			
		||||
| 
						 | 
				
			
			@ -370,7 +272,7 @@ bar-volume-empty-foreground = ${colors.foreground-alt}
 | 
			
		|||
 | 
			
		||||
[module/battery]
 | 
			
		||||
type = internal/battery
 | 
			
		||||
battery = BAT0
 | 
			
		||||
battery = BAT1
 | 
			
		||||
adapter = ADP1
 | 
			
		||||
full-at = 98
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -380,8 +282,8 @@ format-charging-underline = #ffb52a
 | 
			
		|||
format-discharging = <animation-discharging> <label-discharging>
 | 
			
		||||
format-discharging-underline = ${self.format-charging-underline}
 | 
			
		||||
 | 
			
		||||
format-full-prefix = " "
 | 
			
		||||
format-full-prefix-foreground = ${colors.foreground-alt}
 | 
			
		||||
format-full-prefix = " "
 | 
			
		||||
format-full-prefix-foreground = ${colors.green}
 | 
			
		||||
format-full-underline = ${self.format-charging-underline}
 | 
			
		||||
 | 
			
		||||
ramp-capacity-0 = 
 | 
			
		||||
| 
						 | 
				
			
			@ -449,8 +351,16 @@ menu-2-0-exec = sudo poweroff
 | 
			
		|||
menu-2-1 = cancel
 | 
			
		||||
menu-2-1-exec = menu-open-0
 | 
			
		||||
 | 
			
		||||
[settings]
 | 
			
		||||
screenchange-reload = true
 | 
			
		||||
compositing-background = xor
 | 
			
		||||
;compositing-background = screen
 | 
			
		||||
;compositing-foreground = source
 | 
			
		||||
;compositing-border = over
 | 
			
		||||
pseudo-transparency = true
 | 
			
		||||
 | 
			
		||||
[global/wm]
 | 
			
		||||
margin-top = 0
 | 
			
		||||
margin-bottom = 0
 | 
			
		||||
margin-top = 3
 | 
			
		||||
margin-bottom = 2
 | 
			
		||||
 | 
			
		||||
; vim:ft=dosini
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										78
									
								
								scripts/dedupbw
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										78
									
								
								scripts/dedupbw
									
										
									
									
									
										Executable file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,78 @@
 | 
			
		|||
#!/usr/bin/env python3
 | 
			
		||||
 | 
			
		||||
# dedup.py
 | 
			
		||||
# Removes duplicates from Bitwarden export .csv
 | 
			
		||||
# 2019-02-09 5erif
 | 
			
		||||
 | 
			
		||||
import sys
 | 
			
		||||
import hashlib
 | 
			
		||||
from urllib.parse import urlparse
 | 
			
		||||
 | 
			
		||||
# Field ordinals in Bitwarden CSV
 | 
			
		||||
FOLDER   = 0
 | 
			
		||||
FAVORITE = 1
 | 
			
		||||
TYPE     = 2
 | 
			
		||||
NAME     = 3
 | 
			
		||||
NOTES    = 4
 | 
			
		||||
FIELDS   = 5
 | 
			
		||||
URI      = 6
 | 
			
		||||
USERNAME = 7
 | 
			
		||||
PASSWORD = 8
 | 
			
		||||
TOTP     = 9
 | 
			
		||||
 | 
			
		||||
def main(argv):
 | 
			
		||||
 | 
			
		||||
    if len(argv) < 1:
 | 
			
		||||
        print('Missing input file path')
 | 
			
		||||
        sys.exit(1)
 | 
			
		||||
 | 
			
		||||
    in_file_path  = argv[0]
 | 
			
		||||
    out_file_path = in_file_path[0:(len(in_file_path)-4)]+'_out.csv'
 | 
			
		||||
    rem_file_path = in_file_path[0:(len(in_file_path)-4)]+'_rem.csv'
 | 
			
		||||
    completed_lines_hash = set()
 | 
			
		||||
    line_number   = -1
 | 
			
		||||
    write_count   = 0
 | 
			
		||||
    cache         = ''
 | 
			
		||||
 | 
			
		||||
    out_file = open(out_file_path, 'w', encoding = 'utf8')
 | 
			
		||||
    rem_file = open(rem_file_path, 'w', encoding = 'utf8')
 | 
			
		||||
    for line in open(in_file_path, 'r', encoding = 'utf8'):
 | 
			
		||||
        line_number += 1
 | 
			
		||||
        fields = line.split(',')
 | 
			
		||||
        if len(fields) < 10:
 | 
			
		||||
            # Add previous line if short
 | 
			
		||||
            line = cache.strip('\n') + line
 | 
			
		||||
            cache = line
 | 
			
		||||
            fields = line.split(',')
 | 
			
		||||
            if len(fields) > 9:
 | 
			
		||||
                print(f'Recovered with line {line_number}:\n{line}')
 | 
			
		||||
                cache = ''
 | 
			
		||||
            else:
 | 
			
		||||
                print(f'Missing fields in line {line_number}:\n{line}')
 | 
			
		||||
                rem_file.write(line)
 | 
			
		||||
                continue
 | 
			
		||||
        else:
 | 
			
		||||
            cache = ''
 | 
			
		||||
        if line_number != 0:
 | 
			
		||||
            domain = urlparse(fields[URI]).netloc
 | 
			
		||||
            if len(domain) > 0:
 | 
			
		||||
                fields[URI] = domain
 | 
			
		||||
        token = fields[URI] + fields[USERNAME] + fields[PASSWORD]
 | 
			
		||||
        hashValue = hashlib.md5(token.rstrip().encode('utf-8')).hexdigest()
 | 
			
		||||
        if hashValue not in completed_lines_hash:
 | 
			
		||||
            out_file.write(line)
 | 
			
		||||
            completed_lines_hash.add(hashValue)
 | 
			
		||||
            write_count += 1
 | 
			
		||||
        else:
 | 
			
		||||
            rem_file.write(line)
 | 
			
		||||
            # Uncomment for verbose mode
 | 
			
		||||
            # print(f'Skipping duplicate on line {line_number}:\n{line}')
 | 
			
		||||
    out_file.close()
 | 
			
		||||
    rem_file.close()
 | 
			
		||||
 | 
			
		||||
    dup_count = line_number - write_count
 | 
			
		||||
    print(f'\nOutput file: {out_file_path}\n{write_count} unique entries saved')
 | 
			
		||||
    print(f'\n{dup_count} duplicates saved to {rem_file_path}')
 | 
			
		||||
 | 
			
		||||
if __name__ == "__main__":
 | 
			
		||||
   main(sys.argv[1:])
 | 
			
		||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue