• XSS.stack #1 – первый литературный журнал от юзеров форума

прочее Софт для работы с базами mail;pass

Юзай Bat:
Bash:
@echo off
setlocal enableextensions enabledelayedexpansion
set /P base="имябазы.txt"
cls
echo Сортировка запущена, ожидайте.
FINDSTR /L ".ru:" %base% > %base%-россия.txt
FINDSTR /L ".ua:" %base% > %base%-украина.txt
FINDSTR /L ".pl:" %base% > %base%-польша.txt
FINDSTR /L ".fr:" %base% > %base%-франция.txt
FINDSTR /L ".de:" %base% > %base%-германия.txt
FINDSTR /L ".it:" %base% > %base%-италия.txt
FINDSTR /L ".cn:" %base% > %base%-китай.txt
cls
echo Все готово!
pause
 
Последнее редактирование:
Юзай Bash:
Bash:
@echo off
setlocal enableextensions enabledelayedexpansion
set /P base="имябазы.txt"
cls
echo Сортировка запущена, ожидайте.
FINDSTR /L ".ru:" %base% > %base%-россия.txt
FINDSTR /L ".ua:" %base% > %base%-украина.txt
FINDSTR /L ".pl:" %base% > %base%-польша.txt
FINDSTR /L ".fr:" %base% > %base%-франция.txt
FINDSTR /L ".de:" %base% > %base%-германия.txt
FINDSTR /L ".it:" %base% > %base%-италия.txt
FINDSTR /L ".cn:" %base% > %base%-китай.txt
cls
echo Все готово!
pause
это Bat :D
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Python:
import sys
import locale
locale.locale(locale.LC_ALL, 'in_US')
from PyQt5.QtWidgets import QApplication, QWidget, QFileDialog, QVBoxLayout, QTableWidget, QTableWidgetItem, \
    QPushButton, QHeaderView, QLabel
from PyQt5.QtCore import Qt, QThread, pyqtSignal


class FileLoader(QThread):
    updateTable = pyqtSignal(dict)

    def __init__(self, filename):
        super().__init__()
        self.filename = filename

    def run(self):
        domains = {}
        try:
            with open(self.filename, 'r', encoding='utf-8', errors='ignore') as f:
                for line in f:
                    try:
                        email, password = line.strip().split(':')
                        email = email.lower()
                    except ValueError:
                        continue

                    domain = email.split('@')[-1]
                    if domain in domains:
                        domains[domain]['count'] += 1
                    else:
                        domains[domain] = {'count': 1, 'percentage': 0}

                total = sum([domain['count'] for domain in domains.values()])

                for domain in domains.values():
                    domain['percentage'] = domain['count'] / total * 100

                sorted_domains = sorted(domains.items(), key=lambda x: x[1]['percentage'], reverse=True)

                domain_data = {}
                for i, (domain, stats) in enumerate(sorted_domains):
                    domain_data[i] = (domain, stats['count'], f'{stats["percentage"]:.2f}%')

                self.updateTable.emit(domain_data)

        except Exception as e:
            self.updateTable.emit({-1: (f'Error: {e}', '', '')})


class EmailStats(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        self.setWindowTitle('Email Statistics @fr33d4t4')
        self.resize(400, 500)

        self.table = QTableWidget(self)
        self.table.setColumnCount(3)
        self.table.setHorizontalHeaderLabels(['Domain', 'Count', 'Percentage'])
        self.table.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)

        self.load_button = QPushButton('Load File', self)
        self.load_button.clicked.connect(self.loadFile)

        vbox = QVBoxLayout()
        vbox.addWidget(self.load_button)
        vbox.addWidget(self.table)

        self.num_rows_label = QLabel(self)
        self.num_rows_label.setAlignment(Qt.AlignRight)
        vbox.addWidget(self.num_rows_label)

        self.setLayout(vbox)

        self.setAcceptDrops(True)

    def dragEnterEvent(self, event):
        if event.mimeData().hasUrls():
            event.accept()
        else:
            event.ignore()

    def dropEvent(self, event):
        filename = event.mimeData().urls()[0].toLocalFile()
        self.loadFile(filename)

    def loadFile(self, filename=None):
        if not filename:
            filename, _ = QFileDialog.getOpenFileName(self, 'Open File', '', 'Text Files (*.txt)')

        if filename:
            try:
                self.num_rows_label.setText('Loading file...')
                self.fileLoader = FileLoader(filename)
                self.fileLoader.updateTable.connect(self.updateTable)
                self.fileLoader.start()

            except Exception as e:
                self.table.setRowCount(0)
                self.table.setColumnCount(0)
                self.table.setHorizontalHeaderLabels([])
                self.table.setRowCount(1)
                self.table.setItem(0, 0, QTableWidgetItem(f'Error: {e}'))
                self.table.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)

    def updateTable(self, domain_data):
        self.table.setRowCount(0)
        self.table.setRowCount(len(domain_data))
        self.table.setColumnCount(3)
        self.table.setHorizontalHeaderLabels(['Domain', 'Count', 'Percentage'])
        self.table.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)

        for i, data in domain_data.items():
            if i == -1:
                self.table.setRowCount(1)
                self.table.setItem(0, 0, QTableWidgetItem(data[0]))
                self.table.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)
            else:
                self.table.setItem(i, 0, QTableWidgetItem(data[0]))
                self.table.setItem(i, 1, QTableWidgetItem(str(data[1])))
                self.table.setItem(i, 2, QTableWidgetItem(data[2]))

        num_rows = self.table.rowCount()
        self.num_rows_label.setText(f'{num_rows} rows')

        # add total count of emails
        if num_rows > 0:
            count = sum(int(self.table.item(i, 1).text()) for i in range(num_rows))
            formatted_count = locale.format_string('%d', count, grouping=True)
            self.num_rows_label.setText(
                f'{locale.format_string("%d", num_rows, grouping=True)} domains ({formatted_count} emails)')



if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = EmailStats()
    ex.show()
    sys.exit(app.exec_())
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Python:
import sys
import locale
locale.locale(locale.LC_ALL, 'in_US')
from PyQt5.QtWidgets import QApplication, QWidget, QFileDialog, QVBoxLayout, QTableWidget, QTableWidgetItem, \
    QPushButton, QHeaderView, QLabel
from PyQt5.QtCore import Qt, QThread, pyqtSignal


class FileLoader(QThread):
    updateTable = pyqtSignal(dict)

    def __init__(self, filename):
        super().__init__()
        self.filename = filename

    def run(self):
        domains = {}
        try:
            with open(self.filename, 'r', encoding='utf-8', errors='ignore') as f:
                for line in f:
                    try:
                        email, password = line.strip().split(':')
                        email = email.lower()
                    except ValueError:
                        continue

                    domain = email.split('@')[-1]
                    if domain in domains:
                        domains[domain]['count'] += 1
                    else:
                        domains[domain] = {'count': 1, 'percentage': 0}

                total = sum([domain['count'] for domain in domains.values()])

                for domain in domains.values():
                    domain['percentage'] = domain['count'] / total * 100

                sorted_domains = sorted(domains.items(), key=lambda x: x[1]['percentage'], reverse=True)

                domain_data = {}
                for i, (domain, stats) in enumerate(sorted_domains):
                    domain_data[i] = (domain, stats['count'], f'{stats["percentage"]:.2f}%')

                self.updateTable.emit(domain_data)

        except Exception as e:
            self.updateTable.emit({-1: (f'Error: {e}', '', '')})


class EmailStats(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        self.setWindowTitle('Email Statistics @fr33d4t4')
        self.resize(400, 500)

        self.table = QTableWidget(self)
        self.table.setColumnCount(3)
        self.table.setHorizontalHeaderLabels(['Domain', 'Count', 'Percentage'])
        self.table.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)

        self.load_button = QPushButton('Load File', self)
        self.load_button.clicked.connect(self.loadFile)

        vbox = QVBoxLayout()
        vbox.addWidget(self.load_button)
        vbox.addWidget(self.table)

        self.num_rows_label = QLabel(self)
        self.num_rows_label.setAlignment(Qt.AlignRight)
        vbox.addWidget(self.num_rows_label)

        self.setLayout(vbox)

        self.setAcceptDrops(True)

    def dragEnterEvent(self, event):
        if event.mimeData().hasUrls():
            event.accept()
        else:
            event.ignore()

    def dropEvent(self, event):
        filename = event.mimeData().urls()[0].toLocalFile()
        self.loadFile(filename)

    def loadFile(self, filename=None):
        if not filename:
            filename, _ = QFileDialog.getOpenFileName(self, 'Open File', '', 'Text Files (*.txt)')

        if filename:
            try:
                self.num_rows_label.setText('Loading file...')
                self.fileLoader = FileLoader(filename)
                self.fileLoader.updateTable.connect(self.updateTable)
                self.fileLoader.start()

            except Exception as e:
                self.table.setRowCount(0)
                self.table.setColumnCount(0)
                self.table.setHorizontalHeaderLabels([])
                self.table.setRowCount(1)
                self.table.setItem(0, 0, QTableWidgetItem(f'Error: {e}'))
                self.table.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)

    def updateTable(self, domain_data):
        self.table.setRowCount(0)
        self.table.setRowCount(len(domain_data))
        self.table.setColumnCount(3)
        self.table.setHorizontalHeaderLabels(['Domain', 'Count', 'Percentage'])
        self.table.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)

        for i, data in domain_data.items():
            if i == -1:
                self.table.setRowCount(1)
                self.table.setItem(0, 0, QTableWidgetItem(data[0]))
                self.table.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)
            else:
                self.table.setItem(i, 0, QTableWidgetItem(data[0]))
                self.table.setItem(i, 1, QTableWidgetItem(str(data[1])))
                self.table.setItem(i, 2, QTableWidgetItem(data[2]))

        num_rows = self.table.rowCount()
        self.num_rows_label.setText(f'{num_rows} rows')

        # add total count of emails
        if num_rows > 0:
            count = sum(int(self.table.item(i, 1).text()) for i in range(num_rows))
            formatted_count = locale.format_string('%d', count, grouping=True)
            self.num_rows_label.setText(
                f'{locale.format_string("%d", num_rows, grouping=True)} domains ({formatted_count} emails)')



if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = EmailStats()
    ex.show()
    sys.exit(app.exec_())
1708455122728.png

Запаковал в exe через auto-py-to-exe
 
Пожалуйста, обратите внимание, что пользователь заблокирован
или проверьте вручную, открыв блокнот+, я проверю пример .ca
ctrl+f
пример :.ca

1708455389444.png


=2277 .ca

как теперь их совместить?

1708455468559.png

1.mark
1708455557906.png

2.bookmark line
3.mark line
4.ctrl+f=.ca:
1708455635507.png
1708455695673.png
copy all bookmarked line
1708455735524.png
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх