עדכון: בקרוב תתווסף אפשרות לשמיעת וחיפוש הודעות מערכת, וכן קבלת כל קבצי ההגדרות במייל.
-
RE: תגובות: חדש! קו טלפון 📞 לעריכת קבצי ini 📄 באופן מלא + הגדרות נוספות בדרך...
-
כל הגדרות המערכת להורדה⬇️כקבצי טקסט📋
לתועלת הרבים מצורף בזה כל קבצי ההגדרות המעודכנים.
קבצי הגדרות - ימות המשיח מעודכן אלול פ''וכמו כן ניתן לקבל למייל במספר 033046966 שלוחה 6
שימו לב שהקובץ מחולק לתיקיות לפי נושאים, ואילו בהורדה זה מוריד את כל הפוסטים אחד אחד.
בנוסף קוד פייתון להורדת כל הקבצים מאזור התעשייה.
#!/usr/bin/env python3 import argparse, json, re, sys, ssl, os from urllib.request import Request, urlopen from urllib.error import HTTPError, URLError from urllib.parse import quote BASE = "https://f2.freeivr.co.il" DCID = "1" DSLUG = "אזור-התעשייה-הגדרות-המערכת" ctx = ssl.create_default_context() ctx.check_hostname = False ctx.verify_mode = ssl.CERT_NONE def fj(url): r = Request(url, headers={"Accept": "application/json", "User-Agent": "scraper/1.0"}) with urlopen(r, timeout=15, context=ctx) as resp: return json.loads(resp.read().decode("utf-8")) def sh(text): if not text: return "" text = re.sub(r"<[^>]*>", "", text) for o, n in {" ": " ", "&": "&", "<": "<", ">": ">", """: '"', "'": "'", "/": "/"}.items(): text = text.replace(o, n) return text.strip() def dl(tid): posts = [] title = "" for page in range(1, 51): data = fj(f"{BASE}/api/topic/{tid}?page={page}") if page == 1: title = sh(data.get("title", str(tid))) tp = data.get("pagination", {}).get("pageCount", 1) for p in data.get("posts", []): posts.append(sh(p.get("content", ""))) if page >= tp: break lines = [] for p in posts: lines.append(p) lines.append("") lines.append("") st = re.sub(r'[\\/:*?"<>|]', "", title) st = re.sub(r'[a-zA-Z_]+', " ", st) st = re.sub(r'\s+', " ", st).strip()[:50] desk = os.path.join(os.path.expanduser("~"), "Desktop") folder = os.path.join(desk, "אזור התעשיה") os.makedirs(folder, exist_ok=True) fn = os.path.join(folder, f"{st}.txt") with open(fn, "w", encoding="utf-8") as f: f.write("\n".join(lines)) print(f" OK {st}.txt ({len(posts)} posts)") def main(): ap = argparse.ArgumentParser() ap.add_argument("--txt-all", action="store_true") ap.add_argument("--txt", action="store_true") ap.add_argument("--topics") ap.add_argument("--cid", default=DCID) ap.add_argument("--slug", default=DSLUG) ap.add_argument("--page", type=int, default=1) ap.add_argument("--save") a = ap.parse_args() try: if a.txt_all: items = [] page = 1 while True: data = fj(f"{BASE}/api/category/{a.cid}/{quote(a.slug)}?page={page}") ts = data.get("topics", []) if not ts: break for t in ts: items.append({"tid": t.get("tid"), "title": t.get("title", "")}) page += 1 print(f"Found {len(items)} topics") c = 0 for i in items: if i["tid"] is None: continue try: print(f"Topic {i['tid']}") dl(i["tid"]) c += 1 except Exception as e: print(f" SKIP {i['tid']}: {e}") print(f"\nDone! {c} files saved") return if a.txt and a.topics: for t in a.topics.split(","): print(f"\nDownloading topic {t.strip()}") dl(int(t.strip())) return data = fj(f"{BASE}/api/category/{a.cid}/{quote(a.slug)}?page={a.page}") topics = [] for t in data.get("topics", []): topics.append({"id": t.get("tid"), "title": t.get("title"), "author": t.get("user", {}).get("username"), "posts": t.get("postcount")}) result = {"topic_count": len(topics), "topics": topics} if a.save: with open(a.save, "w", encoding="utf-8") as f: f.write(json.dumps(result, ensure_ascii=False, indent=2)) print(f"Saved: {a.save}") else: print(json.dumps(result, ensure_ascii=False, indent=2)) except Exception as e: print(f"ERROR: {e}", file=sys.stderr) sys.exit(1) if __name__ == "__main__": main()לא ממש יודעים מה זה פייתון?
הדרכה מסודרת שלב אחר שלב בספויילרמדריך מלא — הורדת פוסטים מפורום FreeIVR
מה אנחנו עושים?
אנחנו הולכים להוריד פוסטים מאתר אינטרנט (פורום) ולשמור אותם כקבצי טקסט במחשב.שלב 1 — התקנת פייתון (Python)
פייתון היא תוכנה חינמית שמריצה סקריפטים (קטעי קוד קטנים).כנס לאתר: https://www.python.org/downloads/
לחץ על הכפתור הצהוב "Download Python" (הורד פייתון)
פתח את הקובץ שהורדת
חשוב מאוד! במסך הראשון שנפתח, למטה יש תיבה קטנה שכתוב עליה "Add Python to PATH" (הוסף פייתון ל-PATH) — סמן אותה ב-V!
לחץ על "Install Now" (התקן עכשיו)
חכה שההתקנה תסתיים (יופיע כיתוב "Setup was successful")
לחץ "Close" (סגור)
שלב 2 — פתיחת שורת הפקודה (Command Prompt)
שורת הפקודה היא חלון שחור שבו אנחנו כותבים פקודות למחשב.לחץ על מקש Windows (המקש עם הלוגו של Windows, בין Ctrl ל-Alt)
כתוב: cmd
לחץ Enter
ייפתח חלון שחור עם טקסט לבן.כתוב את הפקודה הבאה ולחץ Enter:
python --versionאמור להופיע משהו כמו Python 3.12.x. אם כן — מצוין, פייתון מותקן. אם לא — חזור לשלב 1 וודא שסימנת "Add Python to PATH".
שלב 3 — יצירת תיקייה לעבודה
לחץ על מקש Windows
כתוב: cmd
לחץ Enter
כתוב את הפקודות הבאות (כל אחת ואז Enter):cd Desktop mkdir freeivr cd freeivrמה זה עושה?
cd Desktop — עובר לשולחן העבודה (Desktop = שולחן עבודה)
mkdir freeivr — יוצר תיקייה חדשה בשם freeivr (mkdir = make directory = צור תיקייה)
cd freeivr — נכנס לתיקייה (cd = change directory = החלף תיקייה)
שלב 4 — יצירת קובץ הסקריפט
לחץ על מקש Windows
כתוב: notepad
לחץ Enter — ייפתח פנקס רשימות (Notepad)
העתק את כל הקוד הבא והדבק ב-Notepad:#!/usr/bin/env python3 import argparse, json, re, sys, ssl, os from urllib.request import Request, urlopen from urllib.error import HTTPError, URLError from urllib.parse import quote BASE = "https://f2.freeivr.co.il" DCID = "1" DSLUG = "אזור-התעשייה-הגדרות-המערכת" ctx = ssl.create_default_context() ctx.check_hostname = False ctx.verify_mode = ssl.CERT_NONE def fj(url): r = Request(url, headers={"Accept": "application/json", "User-Agent": "scraper/1.0"}) with urlopen(r, timeout=15, context=ctx) as resp: return json.loads(resp.read().decode("utf-8")) def sh(text): if not text: return "" text = re.sub(r"<[^>]*>", "", text) for o, n in {" ": " ", "&": "&", "<": "<", ">": ">", """: '"', "'": "'", "/": "/"}.items(): text = text.replace(o, n) return text.strip() def dl(tid): posts = [] title = "" for page in range(1, 51): data = fj(f"{BASE}/api/topic/{tid}?page={page}") if page == 1: title = sh(data.get("title", str(tid))) tp = data.get("pagination", {}).get("pageCount", 1) for p in data.get("posts", []): posts.append(sh(p.get("content", ""))) if page >= tp: break lines = [] for p in posts: lines.append(p) lines.append("") lines.append("") st = re.sub(r'[\\/:*?"<>|]', "", title) st = re.sub(r'[a-zA-Z_]+', " ", st) st = re.sub(r'\s+', " ", st).strip()[:50] desk = os.path.join(os.path.expanduser("~"), "Desktop") folder = os.path.join(desk, "אזור התעשיה") os.makedirs(folder, exist_ok=True) fn = os.path.join(folder, f"{st}.txt") with open(fn, "w", encoding="utf-8") as f: f.write("\n".join(lines)) print(f" OK {st}.txt ({len(posts)} posts)") def main(): ap = argparse.ArgumentParser() ap.add_argument("--txt-all", action="store_true") ap.add_argument("--txt", action="store_true") ap.add_argument("--topics") ap.add_argument("--cid", default=DCID) ap.add_argument("--slug", default=DSLUG) ap.add_argument("--page", type=int, default=1) ap.add_argument("--save") a = ap.parse_args() try: if a.txt_all: items = [] page = 1 while True: data = fj(f"{BASE}/api/category/{a.cid}/{quote(a.slug)}?page={page}") ts = data.get("topics", []) if not ts: break for t in ts: items.append({"tid": t.get("tid"), "title": t.get("title", "")}) page += 1 print(f"Found {len(items)} topics") c = 0 for i in items: if i["tid"] is None: continue try: print(f"Topic {i['tid']}") dl(i["tid"]) c += 1 except Exception as e: print(f" SKIP {i['tid']}: {e}") print(f"\nDone! {c} files saved") return if a.txt and a.topics: for t in a.topics.split(","): print(f"\nDownloading topic {t.strip()}") dl(int(t.strip())) return data = fj(f"{BASE}/api/category/{a.cid}/{quote(a.slug)}?page={a.page}") topics = [] for t in data.get("topics", []): topics.append({"id": t.get("tid"), "title": t.get("title"), "author": t.get("user", {}).get("username"), "posts": t.get("postcount")}) result = {"topic_count": len(topics), "topics": topics} if a.save: with open(a.save, "w", encoding="utf-8") as f: f.write(json.dumps(result, ensure_ascii=False, indent=2)) print(f"Saved: {a.save}") else: print(json.dumps(result, ensure_ascii=False, indent=2)) except Exception as e: print(f"ERROR: {e}", file=sys.stderr) sys.exit(1) if __name__ == "__main__": main()ב-Notepad לחץ קובץ (File) → שמירה בשם (Save As)
נווט לתיקייה freeivr שיצרנו על שולחן העבודה
בשדה "שם הקובץ" (File name) כתוב בדיוק: freeivr_scraper.py
בשדה "שמור כסוג" (Save as type) בחר "כל הקבצים" (All Files) — לא "מסמכי טקסט"!
בשדה "קידוד" (Encoding) בחר UTF-8
לחץ "שמור" (Save)
שלב 5 — הרצת הסקריפט
חזור לחלון השחור (cmd)
ודא שאתה בתיקייה freeivr (אם לא — כתוב cd Desktop\freeivr)
כתוב את הפקודה:python freeivr_scraper.py --txt-allלחץ Enter
מה יקרה עכשיו? הסקריפט יוריד את כל הנושאים מהפורום וישמור כל אחד כקובץ טקסט בתיקיית אזור התעשיה על שולחן העבודה. זה יכול לקחת דקה-שתיים.בסוף תראה משהו כמו:
Done! 163 files savedשלב 6 — בדיקה
מזער את החלון השחור
פתח את שולחן העבודה
תראה תיקייה חדשה בשם אזור התעשיה
פתח אותה — יש בפנים קבצי טקסט רבים
פתח אחד מהם — תראה את תוכן הפוסטים
פקודות נוספות (אופציונלי)
להוריד רק נושא אחדpython freeivr_scraper.py --txt --topics 8166(החלף 8166 במספר הנושא שתרצה)
לראות רשימת נושאים בלי להוריד
python freeivr_scraper.pyמילון מונחים
אנגלית עברית
Python פייתון (שפת תכנות)
Download הורדה
Install התקנה
Command Prompt (cmd) שורת הפקודה
Desktop שולחן העבודה
Directory / Folder תיקייה
File קובץ
Save As שמירה בשם
All Files כל הקבצים
Encoding קידוד
UTF-8 UTF-8 (פורמט טקסט שתומך בעברית)
Notepad פנקס רשימות
PATH PATH (משתנה סביבה של Windows)
Script סקריפט (קטע קוד)
Enter Enter (מקש אישור)
Copy העתקה
Paste הדבקה -
RE: דרוש מתנדב להעלאת כמה קבצים לאתר שעדיין לא נבדק
אכן @הדיבל-המעופף שלח לי מייל, כרגע אני לא צריך עוד, אולי מחר.
-
RE: דרוש מתנדב להעלאת כמה קבצים לאתר שעדיין לא נבדק
קדרה דבי שותפי... עדיין לא קיבלתי מייל מי שיכול שישלח.
-
RE: תגובות: חדש! קו טלפון 📞 לעריכת קבצי ini 📄 באופן מלא + הגדרות נוספות בדרך...
@הדיבל-המעופף טוב רק שבוע שאני צריך להיות על זה כל היום.
-
RE: תגובות: חדש! קו טלפון 📞 לעריכת קבצי ini 📄 באופן מלא + הגדרות נוספות בדרך...
@הדיבל-המעופף יש 163 פוסטים באזור התעשיה ובכל פוסט יש ... הגדרות,
כך שלא יודע בדיוק כמה זמן זה יקח אבל נראה לי באזור כמה שבועות של עבודה רצופה -
RE: דרוש מתנדב להעלאת כמה קבצים לאתר שעדיין לא נבדק
@וזכיני-לגדל @פלפל-שחור @מ.ל.ל @איפכא-מסתברא @דף-חדש @חרב-פיפיות
או כל מישהו אחר, אם תוכל לשלוח ל a033046966@gmail.com -
RE: דרוש מתנדב להעלאת כמה קבצים לאתר שעדיין לא נבדק
לא תכננתי כזאת הצפה...
סה"כ הלכתי כמה דקות, עכ"פ המייל שלי הוא a033046966@gmail.com -
דרוש מתנדב להעלאת כמה קבצים לאתר שעדיין לא נבדק
אני צריך למען פיתוח מסוים מישהו שיעלה לי קובץ טקסט לשרת שלי שעדיין לא נבדק בנטפרי.
מי שיכול שישאיר פה הודעה.
תודה רבה.זה יתפרסם פה בעז"ה כך שזה גם זיכוי הרבים.
-
RE: תגובות: חדש! קו טלפון 📞 לעריכת קבצי ini 📄 באופן מלא + הגדרות נוספות בדרך...
אני גם ישמח לשמוע אם השתלשלות השיחה יעילה, או שרב הנזק על התועלת ועדיף למקם את כל האופציות במקום אחד.
כמו כן בסיום עריכת הקובץ האם להשאיר את התפריט, או שיחזור לתפריט אפשרויות העריכה, או לתפריט ראשי. -
RE: תגובות: חדש! קו טלפון 📞 לעריכת קבצי ini 📄 באופן מלא + הגדרות נוספות בדרך...
@Perfect
מה זה החלפת טקסטים?לדוגמא אם כתוב בקובץ no_ringing=yes ואתה רוצה להחליף ל no_ringing=no אז אתה נכנס לשלוחה מקיש מילה להחלפה yes ומקיש מילה חדשה no וזהו.
מחיקת שורה יש בעזר פון.
אבל רק בקובץ ext
@Perfect דווקא היה נראה לי שלקחת השראה מהמערכת הגדרות שלי....
גם נכון ריכזתי את כל מה שחשבתי עליו כמובן שזה כולל גם את המערכת שלך...
@Perfect
א. תוסיף אשף להגדרת סוג שלוחהאיפה ואיך?
ב. תבטל את הצליל חיוג!!!
בוצע
-
RE: תגובות: חדש! קו טלפון 📞 לעריכת קבצי ini 📄 באופן מלא + הגדרות נוספות בדרך...
@Perfect • שינוי שם הקובץ. דבר שלא היה בשום פלטפורמה חזק ביותר!!!
נראה לי שיש את זה בדוד מלך ישראל, ועם כל הכבוד לא הייתי משקיע רק על זה...
האופציות שאין בקווים אחרים (עד כמה שידוע לי)
• שמיעת כמות שמות הקבצים בשלוחה.
• שמיעת תוכן הקובץ במילים.
• עדכון הגדרות בקובץ – כולל בדיקה האם קיים ערך ישן והחלפתו בקובץ ini
• מחיקת שורה בודדת ע"פ מספר שורה/ע"פ מפתח הגדרה בקובץ ini
• החלפת טקסטים בקובץ ini -
תגובות: חדש! קו טלפון 📞 לעריכת קבצי ini 📄 באופן מלא + הגדרות נוספות בדרך...
כאן ניתן להגיב על חדש! קו טלפון
לעריכת קבצי ini
באופן מלא + הגדרות נוספות בדרך...
שימו לב אין שום אחריות על כל נזק שיגרם כתוצאה משימוש בקו, עם זאת כל האופציות נבדקו עשרות פעמים ללא תקלות.
נשמח מאוד לשמוע כל הערה שיש לכם או דיווח על באגים שקיימים במערכת. -
חדש! קו טלפון 📞 לעריכת קבצי ini 📄 באופן מלא + הגדרות נוספות בדרך...
שלום לכולם!
אני שמח להציג בפניכם מערכת טלפונית לניהול מלא של קבצי ini + ניהול שלוחות.מה הם האופציות בקו?
-
ניהול קבצי ini
• שמיעת כמות שמות הקבצים בשלוחה.
• בדיקה האם הקובץ קיים.
• שמיעת תוכן הקובץ במילים.
• שמיעת תוכן הקובץ אות אחר אות.
• עדכון הגדרות בקובץ – כולל בדיקה האם קיים ערך ישן והחלפתו.
• כתיבת תוכן הקובץ מחדש.
• שינוי שם הקובץ.
• העתקת הקובץ לשלוחה אחרת.
• מחיקת הקובץ.
• שמיעת מספר השורות בקובץ.
• מחיקת שורה בודדת ע"פ מספר שורה/ע"פ מפתח הגדרה.
• החלפת טקסטים בקובץ. -
ניהול שלוחות:
• העתקת שלוחות.
• העברת שלוחות.
• מחיקת שלוחות. -
הוספת הגדרות לשלוחות:
• פילטר לפי רשימת תפוצה.
• פילטר לפי רשימת צינתוקים.
(שלוחה זו עדיין בהקמה, בהמשך נוסיף הגדרות נוספות ע"פ הצורך.) -
שמיעת וחיפוש הודעות מערכת.
-
קבלת כל קבצי ההגדרות למייל
מספר הקו הוא 033046966
אשמח לראות הערות הארות ובקשות לשלוחות נוספות בתגובות
-