Open itlsoft opened 4 months ago
import boto3
from botocore.exceptions import ClientError
def get_bucket_metrics(bucket_name):
try:
# Utwórz klienta CloudWatch
cloudwatch_client = boto3.client('cloudwatch')
# Pobierz nazwę regionu bieżącej sesji
region = boto3.Session().region_name
# Pobierz nazwę bucketu
bucket = boto3.resource('s3').Bucket(bucket_name)
# Pobierz identyfikator ARN zasobu
resource_arn = f"arn:aws:s3:::{bucket_name}"
# Pobierz metryki z CloudWatch
response = cloudwatch_client.get_metric_data(
MetricDataQueries=[
{
'Id': 'objects',
'MetricStat': {
'Metric': {
'Namespace': 'AWS/S3',
'MetricName': 'NumberOfObjects',
'Dimensions': [
{
'Name': 'BucketName',
'Value': bucket_name
},
{
'Name': 'StorageType',
'Value': 'AllStorageTypes'
}
]
},
'Period': 3600,
'Stat': 'Average'
},
'ReturnData': True
},
{
'Id': 'bucket_size',
'MetricStat': {
'Metric': {
'Namespace': 'AWS/S3',
'MetricName': 'BucketSizeBytes',
'Dimensions': [
{
'Name': 'BucketName',
'Value': bucket_name
},
{
'Name': 'StorageType',
'Value': 'StandardStorage'
}
]
},
'Period': 3600,
'Stat': 'Average'
},
'ReturnData': True
}
],
StartTime=(datetime.now() - timedelta(hours=1)).isoformat(),
EndTime=datetime.now().isoformat(),
ScanBy='TimestampDescending'
)
# Wyświetl informacje o metrykach
objects_metric_data = response['MetricDataResults'][0]['Values']
bucket_size_metric_data = response['MetricDataResults'][1]['Values']
print(f"Bucket: {bucket_name}")
print(f"Region: {region}")
print(f"Objects Count: {objects_metric_data[0]}")
print(f"Bucket Size (Bytes): {bucket_size_metric_data[0]}")
except ClientError as e:
print(f"Error: {e.response['Error']['Code']} - {e.response['Error']['Message']}")
except Exception as e:
print(f"An error occurred: {str(e)}")
# Przykładowe użycie funkcji
bucket_name = 'nazwa_bucketu'
get_bucket_metrics(bucket_name)
document.getElementById('submit').addEventListener('click', function() {
var radioButtons = document.getElementsByName('answer');
var isChecked = false;
for(var i = 0; i < radioButtons.length; i++) {
if(radioButtons[i].checked) {
isChecked = true;
break;
}
}
var answerChecks = document.querySelectorAll('.answer-check');
answerChecks.forEach(function(answerCheck) {
if(isChecked) {
answerCheck.classList.remove('makechoice');
} else {
answerCheck.classList.add('makechoice');
}
});
});
document.querySelectorAll('input[name="answer"]').forEach(function(radioButton) {
radioButton.addEventListener('change', function() {
var answerChecks = document.querySelectorAll('.answer-check');
answerChecks.forEach(function(answerCheck) {
answerCheck.classList.remove('makechoice');
var qmessage = answerCheck.querySelector('.qmessage');
if (qmessage) {
qmessage.textContent = ''; // Usunięcie tekstu
}
});
if (this.checked) {
var relatedAnswerCheck = this.closest('.answer-check');
if (relatedAnswerCheck) {
relatedAnswerCheck.classList.add('makechoice');
var qmessage = relatedAnswerCheck.querySelector('.qmessage');
if (qmessage) {
qmessage.textContent = 'Tekst HTML'; // Dodanie tekstu HTML
}
}
}
});
});
document.getElementById('submit').addEventListener('click', function() {
var answerChecks = document.querySelectorAll('.answer-check');
var noRadioButtonChecked = true;
document.querySelectorAll('input[name="answer"]').forEach(function(radioButton) {
if (radioButton.checked) {
noRadioButtonChecked = false;
}
});
if (noRadioButtonChecked) {
answerChecks.forEach(function(answerCheck) {
answerCheck.classList.add('makechoice');
var qmessage = answerCheck.querySelector('.qmessage');
if (qmessage) {
qmessage.textContent = ''; // Usunięcie tekstu
}
});
}
});
$(document).ready(function() {
$('.respond-button').click(function() {
var id = $(this).closest('tr').find('td:eq(0)').text();
var name = $(this).closest('tr').find('td:eq(1)').text();
$('#modalId').val(id);
$('#modalName').val(name);
$('#displayId').text(id);
$('#displayName').text(name);
$('#myModal').modal('show');
});
});
$(document).ready(function() {
$('.respond-button').click(function() {
var $row = $(this).closest('tr'); // Znajdź najbliższy wiersz tabeli
var id = $row.find('td:nth-child(1)').text(); // Pobierz wartość Id
var name = $row.find('td:nth-child(2)').text(); // Pobierz wartość Name
// Przypisz wartości do pól input w oknie modalnym
$('#Id').val(id);
$('#Name').val(name);
// Sprawdź wartość w kolumnie Name i otwórz odpowiednie okno modalne
if (name === 'cat') {
$('#Modal1').modal('show');
} else {
$('#Modal2').modal('show');
}
});
});
DECLARE @tableName NVARCHAR(255);
DECLARE @sql NVARCHAR(MAX);
-- Pobierz nazwy wszystkich tabel rozpoczynających się od "Fw*"
DECLARE table_cursor CURSOR FOR
SELECT name
FROM Test.sys.tables
WHERE name LIKE 'Fw%';
OPEN table_cursor;
FETCH NEXT FROM table_cursor INTO @tableName;
-- Iteruj po wszystkich znalezionych tabelach
WHILE @@FETCH_STATUS = 0
BEGIN
-- Wyłącz wszystkie triggery na danej tabeli
SET @sql = N'DISABLE TRIGGER ALL ON ' + QUOTENAME(@tableName);
EXEC sp_executesql @sql;
-- Wyłącz wszystkie contrainy na danej tabeli
SET @sql = N'DISABLE CONSTRAINT ALL ON ' + QUOTENAME(@tableName);
EXEC sp_executesql @sql;
-- Usuń tabelę
SET @sql = N'DROP TABLE ' + QUOTENAME(@tableName);
EXEC sp_executesql @sql;
FETCH NEXT FROM table_cursor INTO @tableName;
END
CLOSE table_cursor;
DEALLOCATE table_cursor;
$(document).ready(function() {
$("#getContent").click(function() {
// Pobierz wartość identyfikatora incydentu
var incidentId = $("#incident_id").val();
// Dodaj klasę "loader" do diva podczas ładowania danych
$("#loadingarea").addClass("loader");
// Wywołanie funkcji AJAX
$.ajax({
url: "http://test.com/api/test",
type: "GET",
data: { incident_id: incidentId },
success: function(response) {
// Dodaj zwrócone dane HTML do diva
$("#ContentPreview").html(response);
// Usuń klasę "loader" po zakończeniu ładowania danych
$("#loadingarea").removeClass("loader");
// Dodaj styl do diva po zakończeniu akcji sukcesem
$("#modal-content2").css("max-width", "90%");
// Utwórz plik Blob z danymi e-maila
var blob = new Blob([response], { type: "message/rfc822" });
// Zapisz identyfikator incydentu w atrybucie data
$("#SaveContentArea").attr("data-incident-id", incidentId);
// Zapisz Blob w atrybucie data
$("#SaveContentArea").attr("data-email-blob", URL.createObjectURL(blob));
},
error: function(xhr, status, error) {
// Obsługa błędu
console.error("Wystąpił błąd: " + xhr.status + " - " + error);
// Usuń klasę "loader" w przypadku błędu
$("#loadingarea").removeClass("loader");
}
});
});
// Obsługa kliknięcia przycisku "Download Content"
$("#SaveContent").click(function() {
// Pobierz identyfikator incydentu
var incidentId = $("#SaveContentArea").attr("data-incident-id");
// Pobierz Blob z atrybutu data
var blobUrl = $("#SaveContentArea").attr("data-email-blob");
// Utwórz link do pobrania pliku
var downloadLink = document.createElement("a");
downloadLink.href = blobUrl;
downloadLink.download = incidentId + ".eml"; // Nazwa pliku
// Dodaj link do dokumentu i kliknij w nim
document.body.appendChild(downloadLink);
downloadLink.click();
// Usuń link z dokumentu
document.body.removeChild(downloadLink);
});
});
$(document).ready(function() {
$("#getContent").click(function() {
// Pobierz wartość identyfikatora incydentu
var incidentId = $("#incident_id").val();
// Dodaj klasę "loader" do diva podczas ładowania danych
$("#loadingarea").addClass("loader");
// Wywołanie funkcji AJAX
$.ajax({
url: "http://test.com/api/test",
type: "GET",
data: { incident_id: incidentId },
success: function(response) {
// Dodaj zwrócone dane HTML do diva
$("#ContentPreview").html(response);
// Usuń klasę "loader" po zakończeniu ładowania danych
$("#loadingarea").removeClass("loader");
// Dodaj styl do diva po zakończeniu akcji sukcesem
$("#modal-content2").css("max-width", "90%");
// Utwórz plik Blob z danymi e-maila
var blob = new Blob([response], { type: "message/rfc822" });
// Utwórz link do pobrania pliku
var downloadLink = document.createElement("a");
downloadLink.href = URL.createObjectURL(blob);
downloadLink.download = incidentId + ".eml"; // Nazwa pliku
// Dodaj link do dokumentu i kliknij w nim
document.body.appendChild(downloadLink);
downloadLink.click();
// Usuń link z dokumentu
document.body.removeChild(downloadLink);
},
error: function(xhr, status, error) {
// Obsługa błędu
console.error("Wystąpił błąd: " + xhr.status + " - " + error);
// Usuń klasę "loader" w przypadku błędu
$("#loadingarea").removeClass("loader");
}
});
});
});
document.addEventListener('DOMContentLoaded', function() {
var sortingRadio = document.getElementsByName('sorting');
var reloadButton = document.getElementById('reloadButton');
// Dodajemy event listener dla przycisku reload
reloadButton.addEventListener('click', function() {
var selectedValue = "";
// Sprawdzamy, który radio button jest zaznaczony
for (var i = 0; i < sortingRadio.length; i++) {
if (sortingRadio[i].checked) {
selectedValue = sortingRadio[i].value;
break;
}
}
// Tworzymy nowy URL z wybraną wartością radio buttona
var currentUrl = window.location.href;
var newUrl;
if (currentUrl.indexOf('?') !== -1) {
newUrl = currentUrl.split('?')[0] + '?sorting=' + selectedValue;
} else {
newUrl = currentUrl + '?sorting=' + selectedValue;
}
// Przeładowujemy stronę z nowym URL
window.location.href = newUrl;
});
});
$(document).ready(function() {
// Sprawdzenie, czy w localStorage jest zapisana ostatnio wybrana opcja filtra
var lastSelectedFilter = localStorage.getItem('lastSelectedFilter');
if (lastSelectedFilter) {
// Zaznaczenie odpowiedniego przycisku radio na podstawie wartości z localStorage
$('#' + lastSelectedFilter).prop('checked', true);
// Wywołanie funkcji filtrowania danych z ostatnio wybranym filtrem
if (lastSelectedFilter === 'deleted') {
filterDeleted($('#' + lastSelectedFilter).val());
} else {
filterOther($('#' + lastSelectedFilter).val());
}
}
// Obsługa kliknięcia przycisku #RefreshData
$('#RefreshData').on('click', function() {
// Pobranie wartości zaznaczonego przycisku radio
var selectedFilter = $('input[name="status"]:checked').attr('id');
// Zapisanie wybranego filtra do localStorage
localStorage.setItem('lastSelectedFilter', selectedFilter);
// Wywołanie funkcji pobierającej dane z API i aktualizującej tabelę
refreshData(selectedFilter);
});
// Funkcja do odświeżania danych i filtracji (analogicznie jak wcześniej)
function refreshData(selectedFilter) {
// Tutaj pobierz dane z API za pomocą Ajax i zaktualizuj tabelę
// Funkcja filterData() również pozostaje taka sama
// Możesz wykorzystać przykładowy kod z poprzedniej odpowiedzi
}
// Funkcja do filtrowania danych w przypadku wybrania opcji "Deleted"
function filterDeleted(value) {
console.log("Filtering deleted:", value);
// Tutaj możesz dodać logikę filtrowania dla opcji "Deleted"
}
// Funkcja do filtrowania danych w pozostałych przypadkach
function filterOther(value) {
console.log("Filtering other:", value);
// Tutaj możesz dodać logikę filtrowania dla pozostałych opcji
}
});
from docx import Document
from datetime import datetime
def update_docx(template_path, output_path, par1, par2, par3):
# Otwórz szablon dokumentu
doc = Document(template_path)
# Funkcja do podmiany tekstu w paragrafach
def replace_in_paragraph(paragraph, old_text, new_text):
if old_text in paragraph.text:
inline = paragraph.runs
for item in inline:
if old_text in item.text:
item.text = item.text.replace(old_text, new_text)
# Funkcja do podmiany tekstu w tabelach
def replace_in_table(table, old_text, new_text):
for row in table.rows:
for cell in row.cells:
for paragraph in cell.paragraphs:
replace_in_paragraph(paragraph, old_text, new_text)
# Podmiana parametrów w całym dokumencie
for paragraph in doc.paragraphs:
replace_in_paragraph(paragraph, "<Par1>", par1)
replace_in_paragraph(paragraph, "<Par2>", par2)
replace_in_paragraph(paragraph, "<Par3>", par3)
# Podmiana parametrów w tabelach (jeśli istnieją)
for table in doc.tables:
replace_in_table(table, "<Par1>", par1)
replace_in_table(table, "<Par2>", par2)
replace_in_table(table, "<Par3>", par3)
# Zapisanie nowego dokumentu
doc.save(output_path)
# Przykładowe użycie funkcji
username = "UserName"
current_date = datetime.now()
month = current_date.strftime("%B")
year = current_date.year
template_path = "template.docx"
output_path = f"{username}_{month}_{year}_ABC.docx"
par1 = "Wartość1"
par2 = "Wartość2"
par3 = "Wartość3"
update_docx(template_path, output_path, par1, par2, par3)
import re
def extract_email_addresses(messagebody):
# Dictionary to store the results
email_addresses = {'To': [], 'CC': [], 'BCC': []}
# Regular expression pattern to match email addresses within <>
email_pattern = r'<([^<>]+)>'
# Function to extract emails for a specific field (To, CC, BCC)
def extract_emails(field):
# Regex to find the specific field line
field_pattern = re.compile(rf'{field}:\s*(.*)', re.IGNORECASE)
match = field_pattern.search(messagebody)
if match:
# Extract emails using the previously defined email_pattern
emails = re.findall(email_pattern, match.group(1))
return emails
return []
# Extract emails for To, CC, and BCC fields
email_addresses['To'] = extract_emails('To')
email_addresses['CC'] = extract_emails('CC')
email_addresses['BCC'] = extract_emails('BCC')
return email_addresses
# Example usage
messagebody = '''
To: "test@gmail.com" <test@gmail.com>, "test2@gmail.com" <test2@gmail.com>, "test3@gmail.com" <test3@gmail.com>
CC: "test@gmail.com" <test@gmail.com>, "test2@gmail.com" <test2@gmail.com>, "test3@gmail.com" <test3@gmail.com>
BCC: "test@gmail.com" <test@gmail.com>, "test2@gmail.com" <test2@gmail.com>, "test3@gmail.com" <test3@gmail.com>
'''
result = extract_email_addresses(messagebody)
print(result)
r'([^<>@]+@[^<@]+)>'