diff --git a/.gitignore b/.gitignore index e69de29..82adb58 100644 --- a/.gitignore +++ b/.gitignore @@ -0,0 +1,2 @@ +__pycache__ +venv diff --git a/README.md b/README.md index 92bbca9..5d85367 100644 --- a/README.md +++ b/README.md @@ -1,38 +1,39 @@ -לפני סגירה, +לפני סגירה‫, אמנם גיביתי כבר את הבלוג שלי, בפעם הקודמת שהיה חשש לסגירה, אבל הפעם רציתי לנסות לבצע גיבוי רציני יותר שישמר כמה שיותר ממאפייני הבלוג וייצור ארכיון אמיתי. -שימו לב, זה הרבה יותר טוב מגיבוי רגיל! +שימו לב, זה הרבה יותר טוב מגיבוי רגיל‫! -אז ראשית - גיבוי התכנים## . +## ‫ גיבוי התכנים -מנגנון הגיבוי לצערי הרב לא משמר את המידע בצורה מסודרת, אלא בעיקר זורק את התוכן בערבוביה. -כדי לגבות את הבלוג על פי שנים, עם תגובות, צריך להשתמש בקישור הבא, ורק לשנות את השנה ב URL בכל פעם. (בשני מקומות, שימו לב) -http://israblog.nana10.co.il/edit/backup_this.asp?FromDay=1&FromMonth=1&FromYear=2003&ToDay=31&ToMonth=12&ToYear=2003&DocType=html&IncludeComments=on +מנגנון הגיבוי לצערי הרב לא משמר את המידע בצורה מסודרת, אלא בעיקר זורק את התוכן בערבוביה‫. +כדי לגבות את הבלוג על פי שנים, עם תגובות, צריך להשתמש בקישור הבא, ורק לשנות את השנה ב‫ URL בכל פעם. (בשני מקומות, שימו לב) +http://israblog.org/edit/backup_this.asp?FromDay=1&FromMonth=1&FromYear=2003&ToDay=31&ToMonth=12&ToYear=2003&DocType=html&IncludeComments=on (אם לא מופיע כלום, ודאו שאתם מחוברים לחשבון ובנוסף, שאכן יש תוכן בשנים שנבחרו. לאחר שהדף עם התכנים מופיע, שומרים את הדף (כפתור ימני, save as, בוחרים web page - complete) בתיקיה נקיה על המחשב (תיקיית israblog) כשבתור שם מכניסים את השנה (חשוב, למען הסדר הטוב) ואז עוברים לשנה הבאה, עד 2017. -בסיום התהליך, תהיה לכם תיקיה שבה קבצי html ותיקיות על פי שנה. +בסיום התהליך, תהיה לכם תיקיה שבה קבצי‫ html ותיקיות על פי שנה. -זה הזמן לוודא שאכן שמרתם את כל השנים ולא פספסתם אף שנה. +זה הזמן לוודא שאכן שמרתם את כל השנים ולא פספסתם אף שנה‫. -גיבוי עיצוב הבלוג## +## ‫ גיבוי עיצוב הבלוג -גם לעיצוב הבלוג הנוסטלגי יש חשיבות בעיני. כדי לגבות את העיצוב, הולכים לדף כלשהו בבלוג (עדיף הדף הראשי של הבלוג) ושומרים באמצעות לחיצה על הכפתור הימני, save as ובפורמט complete. -חשוב מאד: לקובץ יש לקרוא template.html +גם לעיצוב הבלוג הנוסטלגי יש חשיבות בעיני. כדי לגבות את העיצוב, הולכים לדף כלשהו בבלוג (עדיף הדף הראשי של הבלוג) ושומרים באמצעות לחיצה על הכפתור הימני‫, save as ובפורמט complete. +חשוב מאד: לקובץ יש לקרוא‫ template.html -אני נתקלתי בבעיות קלות בשמירת ה template שלי, בעיקר כי היו שם רכיבי פלאש ישנים שכבר לא פעלו. -שימו לב שרצוי לנטרל את כל המנגנונים שחוסמים פרסומות וכו׳, כדי לשמור כמה שיותר רכיבים. +אני נתקלתי בבעיות קלות בשמירת ה‫ template שלי, בעיקר כי היו שם רכיבי פלאש ישנים שכבר לא פעלו. +שימו לב שרצוי לנטרל את כל המנגנונים שחוסמים פרסומות וכו׳, כדי לשמור כמה שיותר רכיבים‫. -גיבוי לפורמט וורד## +גיבוי לפורמט וורד‫## -אני לא אוהב את הפורמט הזה, אבל כגיבוי לגיבוי ורק כי אולי משהו שם יהיה שימושי, אני ממליץ לשמור גם גיבוי בפורמט הזה. -http://israblog.nana10.co.il/edit/backup_this.asp?FromDay=1&FromMonth=1&FromYear=2003&ToDay=31&ToMonth=12&ToYear=2003&DocType=doc&IncludeComments=on +אני לא אוהב את הפורמט הזה, אבל כגיבוי לגיבוי ורק כי אולי משהו שם יהיה שימושי, אני ממליץ לשמור גם גיבוי בפורמט הזה‫. +http://israblog.nana10.org/edit/backup_this.asp?FromDay=1&FromMonth=1&FromYear=2003&ToDay=31&ToMonth=12&ToYear=2003&DocType=doc&IncludeComments=on +## ‫ עיבוד והמרת התוכן למשהו מסודר יותר -עיבוד והמרת התוכן למשהו מסודר יותר## - -מתישהו, מזמן, כשיריב התלבט לאיזה פורמט לכתוב מנוע גיבוי, הפצרתי בו לאפשר ייצוא ל xml. זה היה לפני ש json היה נפוץ, והיה חוסך לי את השלב הזה, או לפחות הופך אותו לקל בהרבה. -כדי להמיר את קבצי ה html לפורמט מסודר יותר, אשב עכשיו לכתוב סקיפט פייתון שינסה: -- לזהות בהצלחה את הקטעים השונים -- לייצר קובץ xml יחיד שמכיל את כל הפוסטים (אני בד״כ מעדיף JSON, אבל כשמדובר בפוסטים עם הרבה שורות, עיצוב, תוכן וכו׳, מוטב XML) -- לנקות את ה template ששמרנו קודם. +מתישהו, מזמן, כשיריב התלבט לאיזה פורמט לכתוב מנוע גיבוי, הפצרתי בו לאפשר ייצוא ל‫ xml. זה היה לפני ש json היה נפוץ, והיה חוסך לי את השלב הזה, או לפחות הופך אותו לקל בהרבה. +‫הסקריפט שכאן ממיר את קבצי הHTML לפורמט מסודר יותר (XML או JSON). +‫הסקריפט: +- ‫מזהה בהצלחה את הקטעים השונים +- ‫מייצר קובץ xml יחיד שמכיל את כל הפוסטים (אני בד״כ מעדיף JSON, אבל כשמדובר בפוסטים עם הרבה שורות, עיצוב, תוכן וכו׳, מוטב XML) +- ‫מנקה את ה template ששמרנו קודם. +- ‫למי שצריך יש גם סקריפט שממיר את קובץ הגיבוי של ישראבלוג לXML של וורדפרס. כמעט כל פלטפורמות הבלוגים תומכות ביבוא הקבצים הללו. diff --git a/src/README.md b/src/README.md new file mode 100644 index 0000000..4607f32 --- /dev/null +++ b/src/README.md @@ -0,0 +1,37 @@ +# Israblog Backup + +## Version + +Version 12.4. + +## Requirements + +- Python 3 + +## Installation and Usage (Source directory!) + +1. Save your Israblog backup (in accordance with the main [README](https://github.com/shirblc/israblog/blob/master/README.md)). +2. Download or clone the repo. +3. cd into the project directory. +4. cd into src. +5. Run ```pip install -r requirements.txt``` to install dependencies (they're necessary for the Wordpress conversion). +6. Update the ```BACKUP_FOLDER``` constant to the location of your downloaded backup. + - If you want to use the Wordpress converter, do it in the [convert_to_wp file](https://github.com/shirblc/israblog/blob/master/src/convert_to_wp.py). + - Otherwise, do it in the [convert file](https://github.com/shirblc/israblog/blob/master/src/convert.py). +7. Run the script: + - If using the Wordpress converter, run ```python convert_to_wp.py``` (run ```python3 convert_to_wp.py``` if you're on macOS). + - If using the regular converter, run ```python convert.py``` (run ```python3 convert.py``` if you're on macOS). + +## Contents + +1. **convert.py** - Converts the Israblog HTML backup into XML/JSON. +2. **convert_to_wp.py** - Converts the Israblog HTML backup into a Wordpress XML. +3. **download_blog_posts.py** - Crawls over the given blog and saves its posts. + +## Dependencies + +1. **pytz** - A timezone utility for Python. For more information, check their [PyPI page](https://pypi.org/project/pytz/). + +## Known Issues + +There are no current issues at the time. diff --git a/src/convert.py b/src/convert.py index 8f76307..635dda4 100644 --- a/src/convert.py +++ b/src/convert.py @@ -18,6 +18,7 @@ RE_COMMENT = '

(.*)' RE_POST = '

' +RE_BREAKER_AND_POST = '

' RE_DATE = '>(\d\d?/\d\d?/\d{1,4} \d\d?:\d\d?:\d\d?)<' RE_PAGE_END = ' + + + + + + + + + + + + + + + + + + + + + Blog + https://wordpress.com + + Wed, 17 Mar 2021 12:26:39 +0000 + + 1.2 + http://wordpress.com/ + https://wordpress.com + + 0 + + + http://wordpress.com/ + + http://s0.wp.com/i/buttonw-com.png + Blog + https://wordpress.com + \n""") + for post in parsed_data: + output_file.write(post.__repr__()) + output_file.write('\n\n\n') + + +def main(): + backup_files_list = get_backup_files(BACKUP_FOLDER) + parsed_data = parse_backup_files(backup_files_list) + save_parsed_data(parsed_data) + + +if __name__ == '__main__': + logging.basicConfig(level=logging.DEBUG) + main() diff --git a/src/requirements.txt b/src/requirements.txt new file mode 100644 index 0000000..5aa4f9f --- /dev/null +++ b/src/requirements.txt @@ -0,0 +1 @@ +pytz==2021.1