86 lines
2.7 KiB
Python
86 lines
2.7 KiB
Python
import sys
|
|
import pyperclip
|
|
import urllib.parse
|
|
from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QHBoxLayout, QLabel, QLineEdit, QPushButton
|
|
from PyQt5.QtGui import QIcon
|
|
from PyQt5.QtMultimedia import QSound
|
|
|
|
|
|
class URLApp(QWidget):
|
|
def __init__(self):
|
|
super().__init__()
|
|
|
|
self.initUI()
|
|
|
|
def initUI(self):
|
|
self.setWindowTitle('Shipping Tracker - 1.5')
|
|
|
|
# Set the dimensions of the window: (x, y, width, height)
|
|
self.setGeometry(100, 100, 900, 125)
|
|
|
|
# Set window icon
|
|
self.setWindowIcon(QIcon('sailboat_26f5.png'))
|
|
|
|
main_layout = QVBoxLayout()
|
|
|
|
lblRMA = QLabel('RMA or Shipping Number:', self)
|
|
main_layout.addWidget(lblRMA)
|
|
|
|
self.txtRMA = QLineEdit(self)
|
|
main_layout.addWidget(self.txtRMA)
|
|
|
|
# Create a horizontal layout for the buttons
|
|
button_layout = QHBoxLayout()
|
|
|
|
btnBaseURL1 = QPushButton('TNT Customer Refrance', self)
|
|
btnBaseURL1.clicked.connect(lambda: self.on_click('https://www.tnt.com/express/en_au/site/shipping-tools/tracking.html?searchType=ref&cons='))
|
|
button_layout.addWidget(btnBaseURL1)
|
|
|
|
btnBaseURL2 = QPushButton('TNT Shipping Number', self)
|
|
btnBaseURL2.clicked.connect(lambda: self.on_click('https://www.tnt.com/express/en_au/site/shipping-tools/tracking.html?searchType=con&cons='))
|
|
button_layout.addWidget(btnBaseURL2)
|
|
|
|
btnBaseURL3 = QPushButton('FedEx Shipping Number', self)
|
|
btnBaseURL3.clicked.connect(lambda: self.on_click('https://www.fedex.com/fedextrack/?trknbr='))
|
|
button_layout.addWidget(btnBaseURL3)
|
|
|
|
# Add the button layout to the main layout
|
|
main_layout.addLayout(button_layout)
|
|
|
|
self.txtFinalUrl = QLineEdit(self)
|
|
main_layout.addWidget(self.txtFinalUrl)
|
|
|
|
lblCopy = QLabel('Clicking on a button will copy the RMA URL to your clipboard', self)
|
|
main_layout.addWidget(lblCopy)
|
|
self.setLayout(main_layout)
|
|
|
|
def on_click(self, baseURL):
|
|
rawRMA = self.txtRMA.text()
|
|
encodedRMA = urllib.parse.quote(rawRMA)
|
|
finalURL = baseURL + encodedRMA
|
|
|
|
self.txtFinalUrl.setText(finalURL)
|
|
pyperclip.copy(finalURL)
|
|
|
|
# Play sound after copying to clipboard
|
|
self.play_notification_sound()
|
|
|
|
def play_notification_sound(self):
|
|
# Load and play notification sound (replace 'notification.wav' with your sound file)
|
|
QSound.play('beep.wav')
|
|
|
|
|
|
def main():
|
|
app = QApplication(sys.argv)
|
|
|
|
# Set the application icon
|
|
app.setWindowIcon(QIcon('sailboat_26f5.png'))
|
|
|
|
ex = URLApp()
|
|
ex.show()
|
|
sys.exit(app.exec_())
|
|
|
|
|
|
if __name__ == '__main__':
|
|
main()
|