חסימת אתרים בשבת

  • פותח הנושא mat
  • פורסם בתאריך

mat

משתמש מקצוען
רציתי לעשות חסימת אתרים בשבת בקוד פתוח אז ביררתי קצת וזה מה שעשיתי.

פתחתי פרוייקט בgit בקישור הזה.

https://github.com/magicode/SourceOfBlessing


בשביל לחשב כניסת שבת בכל מקום צריך פונקציה שמחשבת שקיעה ולדעת את מיקום האי פי
כדי לחשב את השקיעה שבאותו מקום.

בשביל למצוא מיקום ip
מצאתי מחלקה עם db שמתעדכן מדי פעם של maxmind

המחלקה היא בphp והdb הוא בקובץ dat 26 mb

בשביל שהסריקה בdb תהיה מהירה הגדרתי את זה על shared memory

וזה סורק את ה db ב 0.005 שניות

בשביל לחשב שקיעה יש את הפונקציה date_sunset בphp

http://il2.php.net/manual/en/function.date-sunset.php

יש שם כמה פרמטרים שאיתם אפשר לחשב שקיעה

זמן ,קו אורך,קו רוחב, זינט

כדי לחשב צאת הכוכבים מוסיפים לזינט שהוא 90 מעלות את המעלות ששם נמצאת השמש בצאת הכוכבים. (תלוי לפי שיטות)


ניסתי לעשות פונקציה שתחבר את הכל ביחד ותתן תשובה false או true

וזה לא יצא מדיוק מה שכן שיותר טוב לא לתת רק false or true גם את הזמן התפוגה של ה boolean

אתם מוזמנים לראות את זה בgit ולתת רעיונות.
 

KingYes

משתמש צעיר
הייתי מנסה לחשוב על רעיון מתי לא להשתמש בזה.
כאילו נגיד ביום ראשון-חמישי לכל הפחות לא להשתמש בכלל המחלקה הזו, אלא רק מתי שבאמת צריך.
 

Shlomi

משתמש פעיל
D I G I T A L
אפשר לפתח פאנל ניהול עם ופשוט ללחוץ על "הפעל" כמה דקות לפני שבת, ומיד בצאת השבת לכבות..
 

mat

משתמש מקצוען
ליקיר

כבר כתבתי את זה בפונקציה

PHP:
$maybeshabat = !( $date['wday'] < 5 && $date['wday'] > 0 );

לשלומי

זה לא יעבוד לפי כל מיקום ומיקום בעולם לפי כניסת השבת שלו
 

mat

משתמש מקצוען
אני חשבתי שצריך לחשב ככה לחשב פעם אחת את המקום המוקדם בו נכנסת השבת ביותר ולתת לו timestamp

ולשמור אותו בshared memory


אחרי זה כל פעם שמתקבלת בקשה לבדוק האם עבר הזמן בזיכרון

אם לא עבר מאושר
אם עבר

מחשבים את כל הפרמטרים ליציאת שבת הכי מאוחר ושומרים בזיכרון

ועד אז מחשבים לכל אחד

אם לא נמצא מיקום הip סוגרים לו לאורך כל הזמן הזה

ואז גם הרווחת שיש לך זמן תפוגה וגם עובד מהר.

השאלה היא מה המיקום הכי מוקדם שנכנסת שבת בהתחשב בקו התאריך.
 

Shlomi

משתמש פעיל
D I G I T A L
ואם אני מישראל ונכנס מפרוסקי בארה"ב?
 

KingYes

משתמש צעיר
אז אתה תוכל להכנס.. נו בקטנה.

אגב, כולם יכולים לעשות FORK ולתרום לקוד ישירות..
 

s976

משתמש סופר מקצוען
הנדסת תוכנה
D I G I T A L
אם לא רוצים להסתבך עם ה-IP, אפשר לעשות משהו נורא פשוט, אף כי לא כ"כ מדויק. פשוט לבדוק את אזור הזמן GMT שמופיע ב-date, ולפי זה לחשב את השקיעה עם סטייה של כשעה לערכתי. יותר טוב מכלום...
הפונקציה לחישוב השקיעה לפי הפרמטר הנ"ל, לא בעיה להשיג.
 

wmw

משתמש פעיל
D I G I T A L
נכתב ע"י s976;716435:
אם לא רוצים להסתבך עם ה-IP, אפשר לעשות משהו נורא פשוט, אף כי לא כ"כ מדויק. פשוט לבדוק את אזור הזמן GMT שמופיע ב-date, ולפי זה לחשב את השקיעה עם סטייה של כשעה לערכתי. יותר טוב מכלום...
הפונקציה לחישוב השקיעה לפי הפרמטר הנ"ל, לא בעיה להשיג.

זה ייתן לך את הזמן של השרת
כאן רוצים לדעת את הזמן של הלקוח
 

trew

מהמשתמשים המובילים!
עיצוב גרפי
מוזיקה ונגינה
הדמיות בתלת מימד
D I G I T A L
חסימת אתרים בשבת?
יש את הקוד של חתול תראו פה
 

KingYes

משתמש צעיר
של חתול: זה JS פשוט שבקלות אפשר לבטל אותו.

של גרף: זה שירות חיצוני. מה ש-mat רוצה לעשות, זה לא להתבסס על אף אחד וגם קוד פתוח.
 

s976

משתמש סופר מקצוען
הנדסת תוכנה
D I G I T A L
נכתב ע"י wmw;716663:
זה ייתן לך את הזמן של השרת
כאן רוצים לדעת את הזמן של הלקוח
לא התכוונתי לעשות את זה ב-PHP כמובן.
אם אתה עושה את הקוד בJS זה יתן לך את הזמן של הלקוח.
 

s976

משתמש סופר מקצוען
הנדסת תוכנה
D I G I T A L
נכתב ע"י KingYes;716778:
של חתול: זה JS פשוט שבקלות אפשר לבטל אותו.
מה שכבודו אומר שזה פשוט - זה אכן נורא פשוט, ולא מתחשב כלל עם זמן כניסת השבת התלוי בעונת השנה. ולכן כדאי להוסיף על זה פונקציה המחשבת את זמן השקיעה. כי מדובר בסטיות של כמה שעות, ובפרט בחו"ל, שההפרשים הם גדולים מאוד.
ולגבי זה שאפשר לבטל אותה - איני יודע אם צריך לחשוש לזה. הרי מדובר סך הכל באחוז נמוך מאוד מהמשתמשים שיודעים לעשות זאת (אף כי הוא דבר פשוט באמת). ומהם יש אחוז עוד יותר קטן שכל כך בוער להם לראות את האתר. ואם ניקח בחשבון, שמבחינת עיקר הדין, אין בזה איסור - לאפשר לאנשים לחלל שבת על ידי האתר שלך (וכמו שאמרו, הליעטהו לרשע וימות), אלא שעם כל זה רוצים לעשות כמה שיותר נקי, אז לכאורה זה גם פתרון.
 

mat

משתמש מקצוען
לא צריך הסתבך

יש כבר את הפונקציה שמוצאת מיקום לפי ip כך שלדעת את השעה של הגולש זה לא בעיה
יש כבר פונקציה שמחשבת שקיעה וכו' בphp
יש כבר פונקציה שממירה תאריך עברי ללועזי בphp
יש כבר פונציה שכתבתי אפשר לראות ב git שמחזירה ל 1 במקרה שזה יום טוב ו2 במקרה של יום טוב גלויות


מה שצריך לעשות זה לחבר את הכל ביחד לפונקציה אחת שנותנים לה ip והיא מחזירה כן או לא

וכל מה שצריך זה לוגיקה אז אם אתם יודעים לחשוב אתם יכולים לעזור.
 

hatul

משתמש חדש
היה כבר מיזם פתוח דומה בשם OpenShabat. לצערי גיליתי עכשיו שהוא כבר לא זמין אבל אפשר אולי להשיג את הקוד שלו.
הקוד שלי אכן ישן מאוד ויש מקום לשיפור שלו, התחלתי פעם לשפר אותו אבל לא התקדמתי יותר מדי.
 

יריב

משתמש רשום
PHP:
if( !$_REQUEST["client_time"] ) 
{ 
    echo ""; 
    echo "localtime = new Date();"; 
    echo "document.location.href = '$_SERVER['PHP_SELF']?client_time=' + localtime.getTime();"; 
    echo ""; 
} 
else 
{ 
    // Process page as normal 
}
זה ידרוש את זמן המערכת מהגולש כשהוא מגיע ויכניס אותו לפרמטרים בלינק.
אני לא ממליץ להשתמש פה בעוגיה בשלב זה.
באמצעות ה-IP תבדקו אם הוא בתוך שבת.
 

wmw

משתמש פעיל
D I G I T A L
השאלה היא האם תמונת נרות שבת מרצדים על המסך היא פחות חילול שבת ממשהו אחר?
או שאולי מישהו לא רוצה ליהנות ממכירות שמתבצעות תוך חילול שבת
 

mat

משתמש מקצוען
נכתב ע"י wmw;717543:
השאלה היא האם תמונת נרות שבת מרצדים על המסך היא פחות חילול שבת ממשהו אחר?
או שאולי מישהו לא רוצה ליהנות ממכירות שמתבצעות תוך חילול שבת


זה העניין , שאתה בphp בודק אם זה שבת ואם זה שבת אתה יכול פשוט לא להגיב בכלל.
 

s976

משתמש סופר מקצוען
הנדסת תוכנה
D I G I T A L
נכתב ע"י wmw;717543:
השאלה היא האם תמונת נרות שבת מרצדים על המסך היא פחות חילול שבת ממשהו אחר?
או שאולי מישהו לא רוצה ליהנות ממכירות שמתבצעות תוך חילול שבת
ברור שזה פחות חלול שבת. זה שהוא מקבל נרות, אין בזה שום בעיה מבחינתו. כי על הכפתורים הוא כבר לחץ, וכבר חילל את השבת, אז מה זה משנה אם יקבל נרות או הודעת שגיאה.
אבל אם הוא נכנס לאתר שפועל, הוא ממשיך ללחוץ שם על כל מיני אלמנטים, לגלגל את הדף, ועוד ועוד חילולי שבת גם אם לא מדובר במכירות. וכל זה אנחנו כביכול מאפשרים לו על ידי ההצגה של הדף.
 

אולי מעניין אותך גם...

הפרק היומי

הפרק היומי! כל ערב פרק תהילים חדש. הצטרפו אלינו לקריאת תהילים משותפת!


תהילים פרק קיט ק'

קמה קָרָאתִי בְכָל לֵב עֲנֵנִי יי חֻקֶּיךָ אֶצֹּרָה:קמו קְרָאתִיךָ הוֹשִׁיעֵנִי וְאֶשְׁמְרָה עֵדֹתֶיךָ:קמז קִדַּמְתִּי בַנֶּשֶׁף וָאֲשַׁוֵּעָה (לדבריך) לִדְבָרְךָ יִחָלְתִּי:קמח קִדְּמוּ עֵינַי אַשְׁמֻרוֹת לָשִׂיחַ בְּאִמְרָתֶךָ:קמט קוֹלִי שִׁמְעָה כְחַסְדֶּךָ יי כְּמִשְׁפָּטֶךָ חַיֵּנִי:קנ קָרְבוּ רֹדְפֵי זִמָּה מִתּוֹרָתְךָ רָחָקוּ:קנא קָרוֹב אַתָּה יי וְכָל מִצְוֹתֶיךָ אֱמֶת:קנב קֶדֶם יָדַעְתִּי מֵעֵדֹתֶיךָ כִּי לְעוֹלָם יְסַדְתָּם:
נקרא  2  פעמים

אתגר AI

הסוואה • אתגר 21 • אתגר נושא פרסים 🎁

לוח מודעות

למעלה