#!/usr/bin/env python

import os
import re
import time

start = time.time()

def find_replace(root_dir, find_text, replace_text, output_file):
    find_words = [word.strip() for word in find_text.split(',')]
    replace_words = [word.strip() for word in replace_text.split(',')]
    if len(find_words)!= len(replace_words):
        print("Error: Number of find words and replace words must be the same. Using only matching pairs.")
        return  # exit the function immediately
        min_len = min(len(find_words), len(replace_words))
        find_words = find_words[:min_len]
        replace_words = replace_words[:min_len]

    html = "<html><body><h1>Files Modified during find-replace operation</h1><ul>"
    total_replacements = 0  # NEW VARIABLE TO TRACK TOTAL REPLACEMENTS
    for root, dirs, files in os.walk(root_dir):
        for file in files:
            if file.endswith('.html'):
                file_path = os.path.join(root, file)
                try:
                    with open(file_path, 'r') as f:
                        content = f.read()
                    modified = False
                    modified_words = []
                    for find_word, replace_word in zip(find_words, replace_words):
                        count = content.count(find_word)
                        if count > 0:
                            print(f"Found '{find_word}' in {file_path} ({count} occurrences)")
                            content = content.replace(find_word, replace_word)
                            modified = True
                            modified_words.append(f"{find_word} -> {replace_word} ({count} replacements)")
                            total_replacements += count  # INCREMENT TOTAL REPLACEMENTS
                    if modified:
                        with open(file_path, 'w') as f:
                            f.write(content)
                        print(f"Modified {file_path}")
                        html += f"<li><a href='./{file_path}'>{file}</a> - Modified words: {', '.join(modified_words)}</li>"
                except Exception as e:
                    print(f"Error reading {file_path}: {e}")
    html += "</ul></body></html>"
    with open(output_file, 'w') as f:
        f.write(html)
    print(f"Total replacements: {total_replacements} words")
    print("See modified files list in", output_file)



root_dir = './'
find_text = '''संवेदनाओं,सम्वेदनाएं,संवेदनाएं,संवेदनाएँ,संवेदना,चिंतन,करूणा,संभव,जहां,वहां,यहां,संबंधों,संबंधित,संबंध,किंतु,लंबे,गंध,हंस,
संतोष,बंधन,अंदर,संतुष्ट,अंत,गंभीर,शान्तिकुंज,शांतिकुंज,शांतिकुञ्ज,शांति,पसंद,संतुलन,तुरंत,दंड,आवश्यकताएं,नारियां,ढांचा,
आरंभ,महिलाएं,संदर्भ,स्त्रियां,टोलियां,चाहिये,गोष्ठियां,संभावना,पहुंच,परम्परायें,परंपरायें,परंपरा,जानकारियां,
प्रवृत्तियां,सुविधायें,मर्यादाएं,महत्व,पीढ़ियां,सम्भावनाएं,उत्पीडन,शाखाए,उज्वल,पाठशालायें,प्रवृतियों,प्रवृतियाँ,योग्यताएं,छात्रायें,पांच,संत,कुंड,
आनंद,अंतरराष्ट्रीय,अन्तरराष्ट्रीय,चिंतित,जीवंत,जिंदा,अंधे,कुंठित,शांतिः,परावलंबन,उत्पीडित,कुंठाग्रस्त,प्रकांड,फूंका,स्वावलंबन,कुटुंब,शुभारंभ,
संबोधित,अरुंधती,अंध,पंडित,संपन्न,संदेह,सौंदर्य,विलंब,प्रारंभिक,बंध,कंधों,हिंदू,हिंदी,चिंता,अनुसंधान,संवेदना,संपादक,परमहँस,संतति,प्रारंभ,
ग्रंथियों,ग्रंथियाँ,ज्ञानेंद्रियों,ज्ञानेंद्रियाँ,कर्मेंद्रियों,कर्मेंद्रियाँ,आक्रांत,अनंत,अतींद्रिय,प्रतिबिंबित,अखंड,इंद्रियातीत,अक्ल,अंदाजा,एकांत,श्रृंखला,आंतरिक,ब्रह्मांड,
अंडे,अंडों,अंडा,श्रृंगी,कर्मकांड,पाखंड,खंडिनी,परमवंदनीया,मांस,अत्यंत,राजहँस,त्योहार,वंदनीया,भ्रांति,संदिग्ध,संपूर्ण,परंतु,नितांत,सिद्धांत,क्रांति,जिंदगी,
बंदर,मूल्यवान्,गुंडा,जन्मांतरों,शाखाएँँँ,शाखाएँँ,स्वावलंबी,घंटे,घंटा,सुगंध,चंदन,केंद्र,झंडा,पंडा,महंत,मंदिर,गंदा,
प्रबंध,अचंभे,हिंदुस्तान,गंदी,भावनायें,बंद,परंपराएँ,रंगिये,जाएं,गंदगी,कर्त्तव्य,विवेकानंद,गांधी,।।,बंडल,मांग,
श्रेष्ट,बूंद,संतान,कार्यकर्त्ता,प्रतिमायें,कंधे,घनिष्ट,लगाएं,संवर्द्धन,जुटायें,
संभालना,मंथन,निरंतर,एकांत,वायुमंडल,निरंतर,संपत्ति,संपर्क,कालांतर,लंबी,शांत,अवलंबन,आंदोलन,
संदेश,निर्भांत,आडंबर,अज्ञानांधकार,संपादित,संवेदनशील,देशांतर,प्रज्ज्वलित,पांच'''
replace_text = '''सम्वेदनाओं,सम्वेदनाएँ,सम्वेदनाएँ,सम्वेदनाएँ,सम्वेदना,चिन्तन,करुणा,सम्भव,जहाँ,वहाँ,यहाँ,सम्बन्धों,सम्बन्धित,सम्बन्ध,किन्तु,लम्बे,गन्ध,हँस,
सन्तोष,बन्धन,अन्दर,सन्तुष्ट,अन्त,गम्भीर,शान्तिकुञ्ज,शान्तिकुञ्ज,शान्तिकुञ्ज,शान्ति,पसन्द,सन्तुलन,तुरन्त,दण्ड,आवश्यकताएँ,नारियाँ,ढाँचा,
आरम्भ,महिलाएँ,सन्दर्भ,स्त्रियाँ,टोलियाँ,चाहिए,गोष्ठियाँ,सम्भावना,पहुँच,परम्पराएँ,परम्पराएँ,परम्परा,जानकारियाँ,
प्रवृत्तियाँ,सुविधाएँ,मर्यादाएँ,महत्त्व,पीढ़ियाँ,सम्भावनाएँ,उत्पीड़न,शाखाएँ,उज्ज्वल,पाठशालाएँ,प्रवृत्तियों,प्रवृत्तियाँ,योग्यताएँ,छात्राएँ,पाँच,सन्त,कुण्ड,
आनन्द,अन्तर्राष्ट्रीय,अन्तर्राष्ट्रीय,चिन्तित,जीवन्त,जिन्दा,अन्धे,कुण्ठित,शान्तिः,परावलम्बन,उत्पीड़ित,कुण्ठाग्रस्त,प्रकाण्ड,फूँका,स्वावलम्बन,कुटुम्ब,शुभारम्भ,
सम्बोधित,अरुन्धती,अन्ध,पण्डित,सम्पन्न,सन्देह,सौन्दर्य,विलम्ब,प्रारम्भिक,बन्ध,कन्धों,हिन्दू,हिन्दी,चिन्ता,अनुसन्धान,सम्वेदना,सम्पादक,परमहंस,सन्तति,प्रारम्भ,
ग्रन्थियों,ग्रन्थियाँ,ज्ञानेन्द्रियों,ज्ञानेन्द्रियाँ,कर्मेन्द्रियों,कर्मेन्द्रियाँ,आक्रान्त,अनन्त,अतीन्द्रिय,प्रतिबिम्बित,अखण्ड,इन्द्रियातीत,अकल,अन्दाजा,एकान्त,शृंखला,आन्तरिक,ब्रह्माण्ड,
अण्डे,अण्डों,अण्डा,शृंगी,कर्मकाण्ड,पाखण्ड,खण्डिनी,परमवन्दनीया,माँस,अत्यन्त,राजहंस,त्यौहार,वन्दनीया,भ्रान्ति,सन्दिग्ध,सम्पूर्ण,परन्तु,नितान्त,सिद्धान्त,क्रान्ति,जिन्दगी,
बन्दर,मूल्यवान,गुण्डा,जन्मान्तरों,शाखाएँ,शाखाएँ,स्वावलम्बी,घण्टे,घण्टा,सुगन्ध,चन्दन,केन्द्र,झण्डा,पण्डा,महन्त,मन्दिर,गन्दा,
प्रबन्ध,अचम्भे,हिन्दुस्तान,गन्दी,भावनाएँ,बन्द,परम्पराएँ,रंगिए,जाएँ,गन्दगी,कर्तव्य,विवेकानन्द,गाँधी,॥,बण्डल,माँग,
श्रेष्ठ,बूँद,सन्तान,कार्यकर्ता,प्रतिमाएँ,कन्धे,घनिष्ठ,लगाएँ,सम्वर्द्धन,जुटाएँ,
सँभालना,मन्थन,निरन्तर,एकान्त,वायुमण्डल,निरन्तर,सम्पत्ति,सम्पर्क,कालान्तर,लम्बी,शान्त,अवलम्बन,आन्दोलन,
सन्देश,निर्भ्रान्त,आडम्बर,अज्ञानान्धकार,सम्पादित,सम्वेदनशील,देशान्तर,प्रज्वलित,पाँच'''



# root_dir = './'
# find_text = 'old_text'
# replace_text = 'new_text'
output_file ='find-replace-multiple-word-replacements.html'
find_replace(root_dir, find_text, replace_text, output_file)


end = time.time()
print("Elapsed (with compilation) = %s" % (end - start))
