דילוג לתוכן
  • חוקי הפורום
  • לא נפתר
  • משתמשים
  • חיפוש גוגל בפורום
  • צור קשר
עיצובים
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • ברירת מחדל (ללא עיצוב (ברירת מחדל))
  • ללא עיצוב (ברירת מחדל)
כיווץ
לוגו מותג
  1. דף הבית
  2. קטגוריות בהרצה
  3. תכנות
  4. בינה מלאכותית - AI
  5. עזרה הדדית - בינה מלאכותית
  6. המלצה | לתכנת בלי לדעת תיכנות - היום זה אפשרי

המלצה | לתכנת בלי לדעת תיכנות - היום זה אפשרי

מתוזמן נעוץ נעול הועבר עזרה הדדית - בינה מלאכותית
201 פוסטים 40 כותבים 19.3k צפיות 37 Watching
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
תגובה
  • תגובה כנושא
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • צ צללית

    @יעקב-4 כתב בהמלצה | לתכנת בלי לדעת תיכנות - היום זה אפשרי:

    אוקי אתה מסתמא מתכוון לזה:
    https://mitmachim.top/assets/uploads/files/1735056799181-b24203df-0ca9-4f79-bee3-71e74b963e07-image.png

    לא להעתיק את כל מה שיש שם, אלא שם ללחוץ על יצירת מפתח API, ואז להעתיק את המפתח שנוצר

    API.PNG

    י מנותק
    י מנותק
    יעקב 4
    כתב נערך לאחרונה על ידי
    #145

    @צללית יכול להיות שאחרי שתי שאלות הוא לא עובד כי המשאב מוצה?

    צ NH.LOCALN 2 תגובות תגובה אחרונה
    0
    • י יעקב 4

      @צללית יכול להיות שאחרי שתי שאלות הוא לא עובד כי המשאב מוצה?

      צ מנותק
      צ מנותק
      צללית
      כתב נערך לאחרונה על ידי
      #146

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

      י תגובה 1 תגובה אחרונה
      1
      • צ צללית

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

        י מנותק
        י מנותק
        יעקב 4
        כתב נערך לאחרונה על ידי
        #147

        @צללית @sivan22
        נתקע לי כל פעם בהרצת פקודות בטרמינל

        תגובה 1 תגובה אחרונה
        0
        • י יעקב 4

          @צללית יכול להיות שאחרי שתי שאלות הוא לא עובד כי המשאב מוצה?

          NH.LOCALN מנותק
          NH.LOCALN מנותק
          NH.LOCAL
          מדריכים
          כתב נערך לאחרונה על ידי
          #148

          @יעקב-4 כתב בהמלצה | לתכנת בלי לדעת תיכנות - היום זה אפשרי:

          @צללית יכול להיות שאחרי שתי שאלות הוא לא עובד כי המשאב מוצה?

          לא סביר, כי המגבלה מאוד גבוהה, זה לא אמור להיגמר כל כך מהר

          לאינדקס המלא של כלל הסקריפטים שלי
          https://nhlocal.github.io

          צ תגובה 1 תגובה אחרונה
          0
          • EBAE EBA

            @מישהו12 כתב בהמלצה | לתכנת בלי לדעת תיכנות - היום זה אפשרי:

            א"א לתכנת בלי לדעת תכנות.

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

            יצא מדהים, הקוד בספויילר.

            from selenium import webdriver
            from selenium.webdriver.chrome.service import Service
            from selenium.webdriver.chrome.options import Options
            from selenium.webdriver.common.by import By
            from selenium.webdriver.support.ui import WebDriverWait
            from selenium.webdriver.support import expected_conditions as EC
            import time
            import os
            import json
            from datetime import datetime
            from dotenv import load_dotenv
            from bidi.algorithm import get_display
            
            def display_rtl(text):
                """מציג טקסט בעברית בכיוון הנכון"""
                return get_display(text)
            
            load_dotenv()
            
            class ListingUpdater:
                def __init__(self):
                    print(display_rtl("מאתחל את דפדפן Chrome..."))
                    self.cookies_file = "yad2_cookies.json"
                    self.setup_driver()
                    
                def setup_driver(self):
                    chrome_options = Options()
                    chrome_options.add_argument('--disable-gpu')
                    chrome_options.add_argument('--no-sandbox')
                    chrome_options.add_argument('--disable-dev-shm-usage')
                    chrome_options.add_argument('--start-maximized')
                    chrome_options.add_experimental_option("detach", True)
                    
                    try:
                        self.driver = webdriver.Chrome(options=chrome_options)
                        print(display_rtl("דפדפן Chrome הואצל בהצלחה"))
                    except Exception as e:
                        print(display_rtl(f"שגיאה בהגדרת דפדפן Chrome: {str(e)}"))
                        raise
            
                def save_cookies(self):
                    cookies = self.driver.get_cookies()
                    with open(self.cookies_file, 'w') as f:
                        json.dump(cookies, f)
                    print(display_rtl("נשמרו עוגיות בהצלחה"))
            
                def load_cookies(self):
                    try:
                        with open(self.cookies_file, 'r') as f:
                            cookies = json.load(f)
                        
                        # Navigate to the domain first
                        self.driver.get('https://www.yad2.co.il')
                        time.sleep(2)
                        
                        # Add the cookies
                        for cookie in cookies:
                            self.driver.add_cookie(cookie)
                        
                        print(display_rtl("עוגיות נטענו בהצלחה"))
                        return True
                    except FileNotFoundError:
                        print(display_rtl("לא נמצא קובץ עוגיות קיים"))
                        return False
                    except Exception as e:
                        print(display_rtl(f"שגיאה בטעינת עוגיות: {str(e)}"))
                        return False
            
                def check_login_status(self):
                    try:
                        print(display_rtl("בודק סטטוס התחברות..."))
                        # First go to main page
                        self.driver.get('https://www.yad2.co.il')
                        time.sleep(3)
                        
                        # Then try to access my-ads
                        print(display_rtl("מנסה לגשת לאזור האישי..."))
                        self.driver.get('https://www.yad2.co.il/my-ads')
                        time.sleep(10)  # תן יותר זמן לטעינה
                        
                        # Check if we're actually on the my-ads page
                        current_url = self.driver.current_url
                        print(display_rtl(f"כתובת נוכחית: {current_url}"))
                        
                        if "my-ads" in current_url:
                            print(display_rtl("מחובר בהצלחה לאזור האישי!"))
                            return True
                        else:
                            print(display_rtl("לא הצלחנו להגיע לאזור האישי"))
                            return False
                            
                    except Exception as e:
                        print(display_rtl(f"שגיאה בבדיקת סטטוס התחברות: {str(e)}"))
                        return False
            
                def manual_login(self):
                    print(display_rtl("\nאנא התחבר באופן ידני ל-Yad2:"))
                    print(display_rtl("1. הכנס את פרטי ההתחברות שלך"))
                    print(display_rtl("2. פתור את אתגר האבטחה אם נדרש"))
                    print(display_rtl("3. לאחר התחברות מוצלחת, התסריט ימשיך באופן אוטומטי"))
                    
                    self.driver.get('https://www.yad2.co.il/auth/login')
                    
                    # Wait for successful login
                    WebDriverWait(self.driver, 300).until(
                        lambda driver: "my-ads" in driver.current_url or "feed/my" in driver.current_url
                    )
                    
                    print(display_rtl("התחברת בהצלחה!"))
                    self.save_cookies()
            
                def update_listings(self):
                    try:
                        print(display_rtl("מנווט לדף המודעות שלי..."))
                        self.navigate_to_my_ads()
                        
                        # מחפש את כפתורי ההקפצה
                        print(display_rtl("\nמחפש כפתורי הקפצה..."))
                        bump_buttons = self.driver.find_elements(By.CSS_SELECTOR, "[class*='bump-button_bumpButton']")
                        
                        if not bump_buttons:
                            print(display_rtl("לא נמצאו כפתורי הקפצה"))
                            return False
                        
                        print(display_rtl(f"נמצאו {len(bump_buttons)} כפתורי הקפצה"))
                        
                        # עובר על כל כפתור הקפצה
                        for i in range(len(bump_buttons)):
                            try:
                                # מנווט מחדש לדף המודעות בכל פעם
                                self.navigate_to_my_ads()
                                
                                print(display_rtl(f"\nמנסה להקפיץ מודעה {i + 1}..."))
                                
                                # מוצא את כפתורי ההקפצה מחדש אחרי הניווט
                                bump_buttons = self.driver.find_elements(By.CSS_SELECTOR, "[class*='bump-button_bumpButton']")
                                if i >= len(bump_buttons):
                                    print(display_rtl("לא נמצאו יותר כפתורי הקפצה"))
                                    break
                                    
                                button = bump_buttons[i]
                                print(f"\nטקסט על כפתור {i + 1}:", button.text.strip())
                                
                                # בודק אם הכפתור מושבת
                                if button.get_attribute("aria-disabled") == "true" or button.get_attribute("disabled"):
                                    print(display_rtl("הכפתור מושבת"))
                                    continue
                                
                                # גולל לכפתור
                                self.driver.execute_script("arguments[0].scrollIntoView(true);", button)
                                time.sleep(1)
                                
                                # מנסה ללחוץ באמצעות JavaScript
                                print("מנסה ללחוץ על כפתור ההקפצה...")
                                self.driver.execute_script("arguments[0].click();", button)
                                print("לחיצה על כפתור ההקפצה")
                                
                                # מחכה קצת ואז מרענן את הדף
                                time.sleep(2)
                                print("מרענן את הדף...")
                                self.driver.refresh()
                                
                                # מחכה לטעינת הדף
                                print("ממתין לטעינת הדף...")
                                self.wait_for_page_load()
                                print("הדף נטען")
                                
                                # מחכה קצת זמן אחרי ההקפצה
                                time.sleep(3)
                                
                            except Exception as e:
                                print(display_rtl(f"שגיאה בהקפצת מודעה {i + 1}: {str(e)}"))
                                if hasattr(e, 'msg'):
                                    print(f"Message: {e.msg}")
                        
                        return True
                        
                    except Exception as e:
                        print(display_rtl(f"נכשל בהקפצת המודעות: {str(e)}"))
                        if hasattr(e, 'msg'):
                            print(f"Message: {e.msg}")
                        return False
                        
                def navigate_to_my_ads(self):
                    """מנווט לדף המודעות שלי ומחכה שהדף יטען"""
                    self.driver.get('https://www.yad2.co.il/my-ads')
                    
                    # מחכה שהדף יטען
                    print(display_rtl("ממתין לטעינת הדף..."))
                    WebDriverWait(self.driver, 30).until(
                        lambda driver: driver.execute_script("return document.readyState") == "complete"
                    )
                    
                    # מחכה שה-splash screen ייעלם
                    print(display_rtl("ממתין שמסך הטעינה ייעלם..."))
                    try:
                        splash_screen = WebDriverWait(self.driver, 10).until(
                            EC.presence_of_element_located((By.CLASS_NAME, "splash-screen_box__diyY1"))
                        )
                        WebDriverWait(self.driver, 20).until(
                            EC.staleness_of(splash_screen)
                        )
                        print(display_rtl("מסך הטעינה נעלם"))
                    except:
                        print(display_rtl("לא נמצא מסך טעינה"))
                    
                    # מחכה שיופיע התוכן האמיתי
                    print(display_rtl("ממתין לטעינת התוכן..."))
                    time.sleep(3)
            
                def wait_for_page_load(self):
                    WebDriverWait(self.driver, 30).until(
                        lambda driver: driver.execute_script("return document.readyState") == "complete"
                    )
            
                def close(self):
                    try:
                        self.driver.quit()
                    except:
                        pass
            
            def main():
                updater = None
                try:
                    while True:  # לולאה אינסופית
                        print("\nמתחיל הרצה חדשה...")
                        updater = ListingUpdater()
                        updater.load_cookies()
                        if updater.check_login_status():
                            print(display_rtl("התחברות באמצעות עוגיות הצליחה!"))
                        else:
                            print(display_rtl("צריך להתחבר שוב..."))
                            updater.manual_login()
                        
                        print(display_rtl("\nמתחיל את תהליך העדכון..."))
                        updater.update_listings()
                        
                        updater.close()
                        
                        # מחכה 4 שעות ודקה
                        print("\nממתין 4 שעות ודקה עד להרצה הבאה...")
                        time.sleep((4 * 60 * 60) + 60)  # 4 שעות + דקה בשניות
                        
                except KeyboardInterrupt:
                    print("\nהתוכנית הופסקה על ידי המשתמש")
                finally:
                    if updater:
                        updater.close()
            
            if __name__ == "__main__":
                main()
            
            

            A מנותק
            A מנותק
            aiib
            כתב נערך לאחרונה על ידי
            #149

            @EBA כתב בהמלצה | לתכנת בלי לדעת תיכנות - היום זה אפשרי:

            @מישהו12 כתב בהמלצה | לתכנת בלי לדעת תיכנות - היום זה אפשרי:

            א"א לתכנת בלי לדעת תכנות.

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

            יצא מדהים, הקוד בספויילר.

            from selenium import webdriver
            from selenium.webdriver.chrome.service import Service
            from selenium.webdriver.chrome.options import Options
            from selenium.webdriver.common.by import By
            from selenium.webdriver.support.ui import WebDriverWait
            from selenium.webdriver.support import expected_conditions as EC
            import time
            import os
            import json
            from datetime import datetime
            from dotenv import load_dotenv
            from bidi.algorithm import get_display
            
            def display_rtl(text):
                """מציג טקסט בעברית בכיוון הנכון"""
                return get_display(text)
            
            load_dotenv()
            
            class ListingUpdater:
                def __init__(self):
                    print(display_rtl("מאתחל את דפדפן Chrome..."))
                    self.cookies_file = "yad2_cookies.json"
                    self.setup_driver()
                    
                def setup_driver(self):
                    chrome_options = Options()
                    chrome_options.add_argument('--disable-gpu')
                    chrome_options.add_argument('--no-sandbox')
                    chrome_options.add_argument('--disable-dev-shm-usage')
                    chrome_options.add_argument('--start-maximized')
                    chrome_options.add_experimental_option("detach", True)
                    
                    try:
                        self.driver = webdriver.Chrome(options=chrome_options)
                        print(display_rtl("דפדפן Chrome הואצל בהצלחה"))
                    except Exception as e:
                        print(display_rtl(f"שגיאה בהגדרת דפדפן Chrome: {str(e)}"))
                        raise
            
                def save_cookies(self):
                    cookies = self.driver.get_cookies()
                    with open(self.cookies_file, 'w') as f:
                        json.dump(cookies, f)
                    print(display_rtl("נשמרו עוגיות בהצלחה"))
            
                def load_cookies(self):
                    try:
                        with open(self.cookies_file, 'r') as f:
                            cookies = json.load(f)
                        
                        # Navigate to the domain first
                        self.driver.get('https://www.yad2.co.il')
                        time.sleep(2)
                        
                        # Add the cookies
                        for cookie in cookies:
                            self.driver.add_cookie(cookie)
                        
                        print(display_rtl("עוגיות נטענו בהצלחה"))
                        return True
                    except FileNotFoundError:
                        print(display_rtl("לא נמצא קובץ עוגיות קיים"))
                        return False
                    except Exception as e:
                        print(display_rtl(f"שגיאה בטעינת עוגיות: {str(e)}"))
                        return False
            
                def check_login_status(self):
                    try:
                        print(display_rtl("בודק סטטוס התחברות..."))
                        # First go to main page
                        self.driver.get('https://www.yad2.co.il')
                        time.sleep(3)
                        
                        # Then try to access my-ads
                        print(display_rtl("מנסה לגשת לאזור האישי..."))
                        self.driver.get('https://www.yad2.co.il/my-ads')
                        time.sleep(10)  # תן יותר זמן לטעינה
                        
                        # Check if we're actually on the my-ads page
                        current_url = self.driver.current_url
                        print(display_rtl(f"כתובת נוכחית: {current_url}"))
                        
                        if "my-ads" in current_url:
                            print(display_rtl("מחובר בהצלחה לאזור האישי!"))
                            return True
                        else:
                            print(display_rtl("לא הצלחנו להגיע לאזור האישי"))
                            return False
                            
                    except Exception as e:
                        print(display_rtl(f"שגיאה בבדיקת סטטוס התחברות: {str(e)}"))
                        return False
            
                def manual_login(self):
                    print(display_rtl("\nאנא התחבר באופן ידני ל-Yad2:"))
                    print(display_rtl("1. הכנס את פרטי ההתחברות שלך"))
                    print(display_rtl("2. פתור את אתגר האבטחה אם נדרש"))
                    print(display_rtl("3. לאחר התחברות מוצלחת, התסריט ימשיך באופן אוטומטי"))
                    
                    self.driver.get('https://www.yad2.co.il/auth/login')
                    
                    # Wait for successful login
                    WebDriverWait(self.driver, 300).until(
                        lambda driver: "my-ads" in driver.current_url or "feed/my" in driver.current_url
                    )
                    
                    print(display_rtl("התחברת בהצלחה!"))
                    self.save_cookies()
            
                def update_listings(self):
                    try:
                        print(display_rtl("מנווט לדף המודעות שלי..."))
                        self.navigate_to_my_ads()
                        
                        # מחפש את כפתורי ההקפצה
                        print(display_rtl("\nמחפש כפתורי הקפצה..."))
                        bump_buttons = self.driver.find_elements(By.CSS_SELECTOR, "[class*='bump-button_bumpButton']")
                        
                        if not bump_buttons:
                            print(display_rtl("לא נמצאו כפתורי הקפצה"))
                            return False
                        
                        print(display_rtl(f"נמצאו {len(bump_buttons)} כפתורי הקפצה"))
                        
                        # עובר על כל כפתור הקפצה
                        for i in range(len(bump_buttons)):
                            try:
                                # מנווט מחדש לדף המודעות בכל פעם
                                self.navigate_to_my_ads()
                                
                                print(display_rtl(f"\nמנסה להקפיץ מודעה {i + 1}..."))
                                
                                # מוצא את כפתורי ההקפצה מחדש אחרי הניווט
                                bump_buttons = self.driver.find_elements(By.CSS_SELECTOR, "[class*='bump-button_bumpButton']")
                                if i >= len(bump_buttons):
                                    print(display_rtl("לא נמצאו יותר כפתורי הקפצה"))
                                    break
                                    
                                button = bump_buttons[i]
                                print(f"\nטקסט על כפתור {i + 1}:", button.text.strip())
                                
                                # בודק אם הכפתור מושבת
                                if button.get_attribute("aria-disabled") == "true" or button.get_attribute("disabled"):
                                    print(display_rtl("הכפתור מושבת"))
                                    continue
                                
                                # גולל לכפתור
                                self.driver.execute_script("arguments[0].scrollIntoView(true);", button)
                                time.sleep(1)
                                
                                # מנסה ללחוץ באמצעות JavaScript
                                print("מנסה ללחוץ על כפתור ההקפצה...")
                                self.driver.execute_script("arguments[0].click();", button)
                                print("לחיצה על כפתור ההקפצה")
                                
                                # מחכה קצת ואז מרענן את הדף
                                time.sleep(2)
                                print("מרענן את הדף...")
                                self.driver.refresh()
                                
                                # מחכה לטעינת הדף
                                print("ממתין לטעינת הדף...")
                                self.wait_for_page_load()
                                print("הדף נטען")
                                
                                # מחכה קצת זמן אחרי ההקפצה
                                time.sleep(3)
                                
                            except Exception as e:
                                print(display_rtl(f"שגיאה בהקפצת מודעה {i + 1}: {str(e)}"))
                                if hasattr(e, 'msg'):
                                    print(f"Message: {e.msg}")
                        
                        return True
                        
                    except Exception as e:
                        print(display_rtl(f"נכשל בהקפצת המודעות: {str(e)}"))
                        if hasattr(e, 'msg'):
                            print(f"Message: {e.msg}")
                        return False
                        
                def navigate_to_my_ads(self):
                    """מנווט לדף המודעות שלי ומחכה שהדף יטען"""
                    self.driver.get('https://www.yad2.co.il/my-ads')
                    
                    # מחכה שהדף יטען
                    print(display_rtl("ממתין לטעינת הדף..."))
                    WebDriverWait(self.driver, 30).until(
                        lambda driver: driver.execute_script("return document.readyState") == "complete"
                    )
                    
                    # מחכה שה-splash screen ייעלם
                    print(display_rtl("ממתין שמסך הטעינה ייעלם..."))
                    try:
                        splash_screen = WebDriverWait(self.driver, 10).until(
                            EC.presence_of_element_located((By.CLASS_NAME, "splash-screen_box__diyY1"))
                        )
                        WebDriverWait(self.driver, 20).until(
                            EC.staleness_of(splash_screen)
                        )
                        print(display_rtl("מסך הטעינה נעלם"))
                    except:
                        print(display_rtl("לא נמצא מסך טעינה"))
                    
                    # מחכה שיופיע התוכן האמיתי
                    print(display_rtl("ממתין לטעינת התוכן..."))
                    time.sleep(3)
            
                def wait_for_page_load(self):
                    WebDriverWait(self.driver, 30).until(
                        lambda driver: driver.execute_script("return document.readyState") == "complete"
                    )
            
                def close(self):
                    try:
                        self.driver.quit()
                    except:
                        pass
            
            def main():
                updater = None
                try:
                    while True:  # לולאה אינסופית
                        print("\nמתחיל הרצה חדשה...")
                        updater = ListingUpdater()
                        updater.load_cookies()
                        if updater.check_login_status():
                            print(display_rtl("התחברות באמצעות עוגיות הצליחה!"))
                        else:
                            print(display_rtl("צריך להתחבר שוב..."))
                            updater.manual_login()
                        
                        print(display_rtl("\nמתחיל את תהליך העדכון..."))
                        updater.update_listings()
                        
                        updater.close()
                        
                        # מחכה 4 שעות ודקה
                        print("\nממתין 4 שעות ודקה עד להרצה הבאה...")
                        time.sleep((4 * 60 * 60) + 60)  # 4 שעות + דקה בשניות
                        
                except KeyboardInterrupt:
                    print("\nהתוכנית הופסקה על ידי המשתמש")
                finally:
                    if updater:
                        updater.close()
            
            if __name__ == "__main__":
                main()
            
            

            יש לך את זה בתוכנה מוכנה? איך אני מפעיל אותו?

            EBAE תגובה 1 תגובה אחרונה
            0
            • NH.LOCALN NH.LOCAL

              @יעקב-4 כתב בהמלצה | לתכנת בלי לדעת תיכנות - היום זה אפשרי:

              @צללית יכול להיות שאחרי שתי שאלות הוא לא עובד כי המשאב מוצה?

              לא סביר, כי המגבלה מאוד גבוהה, זה לא אמור להיגמר כל כך מהר

              צ מנותק
              צ מנותק
              צללית
              כתב נערך לאחרונה על ידי
              #150

              @NH-LOCAL @יעקב-4 עכשיו בדקתי וראיתי שחלק מהמודלים מוגבלים לשתי שאלות בדקה וחלק ל15 שאלות בדקה

              תגובה 1 תגובה אחרונה
              0
              • A aiib

                @EBA כתב בהמלצה | לתכנת בלי לדעת תיכנות - היום זה אפשרי:

                @מישהו12 כתב בהמלצה | לתכנת בלי לדעת תיכנות - היום זה אפשרי:

                א"א לתכנת בלי לדעת תכנות.

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

                יצא מדהים, הקוד בספויילר.

                from selenium import webdriver
                from selenium.webdriver.chrome.service import Service
                from selenium.webdriver.chrome.options import Options
                from selenium.webdriver.common.by import By
                from selenium.webdriver.support.ui import WebDriverWait
                from selenium.webdriver.support import expected_conditions as EC
                import time
                import os
                import json
                from datetime import datetime
                from dotenv import load_dotenv
                from bidi.algorithm import get_display
                
                def display_rtl(text):
                    """מציג טקסט בעברית בכיוון הנכון"""
                    return get_display(text)
                
                load_dotenv()
                
                class ListingUpdater:
                    def __init__(self):
                        print(display_rtl("מאתחל את דפדפן Chrome..."))
                        self.cookies_file = "yad2_cookies.json"
                        self.setup_driver()
                        
                    def setup_driver(self):
                        chrome_options = Options()
                        chrome_options.add_argument('--disable-gpu')
                        chrome_options.add_argument('--no-sandbox')
                        chrome_options.add_argument('--disable-dev-shm-usage')
                        chrome_options.add_argument('--start-maximized')
                        chrome_options.add_experimental_option("detach", True)
                        
                        try:
                            self.driver = webdriver.Chrome(options=chrome_options)
                            print(display_rtl("דפדפן Chrome הואצל בהצלחה"))
                        except Exception as e:
                            print(display_rtl(f"שגיאה בהגדרת דפדפן Chrome: {str(e)}"))
                            raise
                
                    def save_cookies(self):
                        cookies = self.driver.get_cookies()
                        with open(self.cookies_file, 'w') as f:
                            json.dump(cookies, f)
                        print(display_rtl("נשמרו עוגיות בהצלחה"))
                
                    def load_cookies(self):
                        try:
                            with open(self.cookies_file, 'r') as f:
                                cookies = json.load(f)
                            
                            # Navigate to the domain first
                            self.driver.get('https://www.yad2.co.il')
                            time.sleep(2)
                            
                            # Add the cookies
                            for cookie in cookies:
                                self.driver.add_cookie(cookie)
                            
                            print(display_rtl("עוגיות נטענו בהצלחה"))
                            return True
                        except FileNotFoundError:
                            print(display_rtl("לא נמצא קובץ עוגיות קיים"))
                            return False
                        except Exception as e:
                            print(display_rtl(f"שגיאה בטעינת עוגיות: {str(e)}"))
                            return False
                
                    def check_login_status(self):
                        try:
                            print(display_rtl("בודק סטטוס התחברות..."))
                            # First go to main page
                            self.driver.get('https://www.yad2.co.il')
                            time.sleep(3)
                            
                            # Then try to access my-ads
                            print(display_rtl("מנסה לגשת לאזור האישי..."))
                            self.driver.get('https://www.yad2.co.il/my-ads')
                            time.sleep(10)  # תן יותר זמן לטעינה
                            
                            # Check if we're actually on the my-ads page
                            current_url = self.driver.current_url
                            print(display_rtl(f"כתובת נוכחית: {current_url}"))
                            
                            if "my-ads" in current_url:
                                print(display_rtl("מחובר בהצלחה לאזור האישי!"))
                                return True
                            else:
                                print(display_rtl("לא הצלחנו להגיע לאזור האישי"))
                                return False
                                
                        except Exception as e:
                            print(display_rtl(f"שגיאה בבדיקת סטטוס התחברות: {str(e)}"))
                            return False
                
                    def manual_login(self):
                        print(display_rtl("\nאנא התחבר באופן ידני ל-Yad2:"))
                        print(display_rtl("1. הכנס את פרטי ההתחברות שלך"))
                        print(display_rtl("2. פתור את אתגר האבטחה אם נדרש"))
                        print(display_rtl("3. לאחר התחברות מוצלחת, התסריט ימשיך באופן אוטומטי"))
                        
                        self.driver.get('https://www.yad2.co.il/auth/login')
                        
                        # Wait for successful login
                        WebDriverWait(self.driver, 300).until(
                            lambda driver: "my-ads" in driver.current_url or "feed/my" in driver.current_url
                        )
                        
                        print(display_rtl("התחברת בהצלחה!"))
                        self.save_cookies()
                
                    def update_listings(self):
                        try:
                            print(display_rtl("מנווט לדף המודעות שלי..."))
                            self.navigate_to_my_ads()
                            
                            # מחפש את כפתורי ההקפצה
                            print(display_rtl("\nמחפש כפתורי הקפצה..."))
                            bump_buttons = self.driver.find_elements(By.CSS_SELECTOR, "[class*='bump-button_bumpButton']")
                            
                            if not bump_buttons:
                                print(display_rtl("לא נמצאו כפתורי הקפצה"))
                                return False
                            
                            print(display_rtl(f"נמצאו {len(bump_buttons)} כפתורי הקפצה"))
                            
                            # עובר על כל כפתור הקפצה
                            for i in range(len(bump_buttons)):
                                try:
                                    # מנווט מחדש לדף המודעות בכל פעם
                                    self.navigate_to_my_ads()
                                    
                                    print(display_rtl(f"\nמנסה להקפיץ מודעה {i + 1}..."))
                                    
                                    # מוצא את כפתורי ההקפצה מחדש אחרי הניווט
                                    bump_buttons = self.driver.find_elements(By.CSS_SELECTOR, "[class*='bump-button_bumpButton']")
                                    if i >= len(bump_buttons):
                                        print(display_rtl("לא נמצאו יותר כפתורי הקפצה"))
                                        break
                                        
                                    button = bump_buttons[i]
                                    print(f"\nטקסט על כפתור {i + 1}:", button.text.strip())
                                    
                                    # בודק אם הכפתור מושבת
                                    if button.get_attribute("aria-disabled") == "true" or button.get_attribute("disabled"):
                                        print(display_rtl("הכפתור מושבת"))
                                        continue
                                    
                                    # גולל לכפתור
                                    self.driver.execute_script("arguments[0].scrollIntoView(true);", button)
                                    time.sleep(1)
                                    
                                    # מנסה ללחוץ באמצעות JavaScript
                                    print("מנסה ללחוץ על כפתור ההקפצה...")
                                    self.driver.execute_script("arguments[0].click();", button)
                                    print("לחיצה על כפתור ההקפצה")
                                    
                                    # מחכה קצת ואז מרענן את הדף
                                    time.sleep(2)
                                    print("מרענן את הדף...")
                                    self.driver.refresh()
                                    
                                    # מחכה לטעינת הדף
                                    print("ממתין לטעינת הדף...")
                                    self.wait_for_page_load()
                                    print("הדף נטען")
                                    
                                    # מחכה קצת זמן אחרי ההקפצה
                                    time.sleep(3)
                                    
                                except Exception as e:
                                    print(display_rtl(f"שגיאה בהקפצת מודעה {i + 1}: {str(e)}"))
                                    if hasattr(e, 'msg'):
                                        print(f"Message: {e.msg}")
                            
                            return True
                            
                        except Exception as e:
                            print(display_rtl(f"נכשל בהקפצת המודעות: {str(e)}"))
                            if hasattr(e, 'msg'):
                                print(f"Message: {e.msg}")
                            return False
                            
                    def navigate_to_my_ads(self):
                        """מנווט לדף המודעות שלי ומחכה שהדף יטען"""
                        self.driver.get('https://www.yad2.co.il/my-ads')
                        
                        # מחכה שהדף יטען
                        print(display_rtl("ממתין לטעינת הדף..."))
                        WebDriverWait(self.driver, 30).until(
                            lambda driver: driver.execute_script("return document.readyState") == "complete"
                        )
                        
                        # מחכה שה-splash screen ייעלם
                        print(display_rtl("ממתין שמסך הטעינה ייעלם..."))
                        try:
                            splash_screen = WebDriverWait(self.driver, 10).until(
                                EC.presence_of_element_located((By.CLASS_NAME, "splash-screen_box__diyY1"))
                            )
                            WebDriverWait(self.driver, 20).until(
                                EC.staleness_of(splash_screen)
                            )
                            print(display_rtl("מסך הטעינה נעלם"))
                        except:
                            print(display_rtl("לא נמצא מסך טעינה"))
                        
                        # מחכה שיופיע התוכן האמיתי
                        print(display_rtl("ממתין לטעינת התוכן..."))
                        time.sleep(3)
                
                    def wait_for_page_load(self):
                        WebDriverWait(self.driver, 30).until(
                            lambda driver: driver.execute_script("return document.readyState") == "complete"
                        )
                
                    def close(self):
                        try:
                            self.driver.quit()
                        except:
                            pass
                
                def main():
                    updater = None
                    try:
                        while True:  # לולאה אינסופית
                            print("\nמתחיל הרצה חדשה...")
                            updater = ListingUpdater()
                            updater.load_cookies()
                            if updater.check_login_status():
                                print(display_rtl("התחברות באמצעות עוגיות הצליחה!"))
                            else:
                                print(display_rtl("צריך להתחבר שוב..."))
                                updater.manual_login()
                            
                            print(display_rtl("\nמתחיל את תהליך העדכון..."))
                            updater.update_listings()
                            
                            updater.close()
                            
                            # מחכה 4 שעות ודקה
                            print("\nממתין 4 שעות ודקה עד להרצה הבאה...")
                            time.sleep((4 * 60 * 60) + 60)  # 4 שעות + דקה בשניות
                            
                    except KeyboardInterrupt:
                        print("\nהתוכנית הופסקה על ידי המשתמש")
                    finally:
                        if updater:
                            updater.close()
                
                if __name__ == "__main__":
                    main()
                
                

                יש לך את זה בתוכנה מוכנה? איך אני מפעיל אותו?

                EBAE מנותק
                EBAE מנותק
                EBA
                מדריכים
                כתב נערך לאחרונה על ידי
                #151

                @aiib כתב בהמלצה | לתכנת בלי לדעת תיכנות - היום זה אפשרי:

                יש לך את זה בתוכנה מוכנה? איך אני מפעיל אותו?

                0

                לא, ובכלל כרגע הוא רוב הפעמים נתקע באימות של "אני לא רובוט"

                sivan22S תגובה 1 תגובה אחרונה
                1
                • EBAE EBA

                  @aiib כתב בהמלצה | לתכנת בלי לדעת תיכנות - היום זה אפשרי:

                  יש לך את זה בתוכנה מוכנה? איך אני מפעיל אותו?

                  0

                  לא, ובכלל כרגע הוא רוב הפעמים נתקע באימות של "אני לא רובוט"

                  sivan22S מנותק
                  sivan22S מנותק
                  sivan22
                  כתב נערך לאחרונה על ידי
                  #152

                  @EBA כתב בהמלצה | לתכנת בלי לדעת תיכנות - היום זה אפשרי:

                  @aiib כתב בהמלצה | לתכנת בלי לדעת תיכנות - היום זה אפשרי:

                  יש לך את זה בתוכנה מוכנה? איך אני מפעיל אותו?

                  0

                  לא, ובכלל כרגע הוא רוב הפעמים נתקע באימות של "אני לא רובוט"

                  נסה את https://anti-captcha.com/ או שירות מקביל

                  EBAE תגובה 1 תגובה אחרונה
                  0
                  • sivan22S sivan22

                    @EBA כתב בהמלצה | לתכנת בלי לדעת תיכנות - היום זה אפשרי:

                    @aiib כתב בהמלצה | לתכנת בלי לדעת תיכנות - היום זה אפשרי:

                    יש לך את זה בתוכנה מוכנה? איך אני מפעיל אותו?

                    0

                    לא, ובכלל כרגע הוא רוב הפעמים נתקע באימות של "אני לא רובוט"

                    נסה את https://anti-captcha.com/ או שירות מקביל

                    EBAE מנותק
                    EBAE מנותק
                    EBA
                    מדריכים
                    כתב נערך לאחרונה על ידי
                    #153

                    @sivan22 כסף...

                    תגובה 1 תגובה אחרונה
                    0
                    • sivan22S sivan22

                      מהפכת הAI כבר כאן, ואחד הכלים החמים ביותר לאחרונה הוא עורך קוד עם סוכן AI מובנה בתוכו. יש חלון צ'אט קטן בתוך עורך הקוד, וניתן לשוחח עם מודל של בינה מלאכותית ולהנחות אותו במילים פשוטות מה אנחנו צריכים, והוא כבר יעשה הכל אבל הכל: לכתוב את הקוד, להריץ אותו, לבדוק שגיאות, להתקין תלויות. וכן, הוא מבין עברית מצויין.

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

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

                      כאן אני אתן פירוט על שלשה כלים כאלו:

                      הראשון, ועליו אני ממליץ למתחילים, הוא windsurf. היתרון המרכזי הוא המחיר: חינמי ללא הגבלה. יש מכסה מסויימת חינמית, פשוט להוריד ולהתחיל לשוחח איתו בעברית.

                      השני, עליו אני ממליץ למתקדמים הוא cline - זהו תוסף לVSCODE בקוד פתוח, שכדי להפעיל אותו נדרש API. אפשר להשתמש גם עם API חינמי של גוגל שניתן להשיג מכאן. אם כי איכות יותר טובה תתקבל בשימוש בAPI בתשלום של אנטרופיק, ניתן להטעין החל מ5$. את המפתח ניתן להשיג לאחר הרשמה כאן.

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

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

                      צ מחובר
                      צ מחובר
                      צבי דורש ציון
                      כתב נערך לאחרונה על ידי צבי דורש ציון
                      #154

                      @sivan22 היום ב"ה בניתי עם זה (האפשרות הראשונה) תוכנה פשוטה כלשהי (עיין כאן) עזר לי הידע הבסיסי והמועט מאד שלמדתי מתוך הפורום, אבל זה היה פשוט נפלא, הוא גם קימפל לי לבד והתקין לי את זה במחשב בתוך תיקייה שהוא יצר לי איפה שביקשתי! (הארכתי כאן)
                      בקיצור, תודה רבה!
                      (השתמשתי בו בעבר, אבל אז לא היה צריך להתקין אותו, והיית מסתבך עם הקימפול וכו' - עכשיו זה פשוט נפלא!)

                      א תגובה 1 תגובה אחרונה
                      2
                      • צ צבי דורש ציון

                        @sivan22 היום ב"ה בניתי עם זה (האפשרות הראשונה) תוכנה פשוטה כלשהי (עיין כאן) עזר לי הידע הבסיסי והמועט מאד שלמדתי מתוך הפורום, אבל זה היה פשוט נפלא, הוא גם קימפל לי לבד והתקין לי את זה במחשב בתוך תיקייה שהוא יצר לי איפה שביקשתי! (הארכתי כאן)
                        בקיצור, תודה רבה!
                        (השתמשתי בו בעבר, אבל אז לא היה צריך להתקין אותו, והיית מסתבך עם הקימפול וכו' - עכשיו זה פשוט נפלא!)

                        א מנותק
                        א מנותק
                        אליה אליהו
                        כתב נערך לאחרונה על ידי
                        #155

                        @צבי-דורש-ציון כתב בהמלצה | לתכנת בלי לדעת תיכנות - היום זה אפשרי:

                        @sivan22 היום ב"ה בניתי עם זה (האפשרות הראשונה) תוכנה פשוטה כלשהי (עיין כאן) עזר לי הידע הבסיסי והמועט מאד שלמדתי מתוך הפורום, אבל זה היה פשוט נפלא, הוא גם קימפל לי לבד והתקין לי את זה במחשב בתוך תיקייה שהוא יצר לי איפה שביקשתי! (הארכתי כאן)
                        בקיצור, תודה רבה!
                        (השתמשתי בו בעבר, אבל אז לא היה צריך להתקין אותו, והיית מסתבך עם הקימפול וכו' - עכשיו זה פשוט נפלא!)

                        @צבי-דורש-ציון צודק מאוד ותודה רבה 😊

                        תגובה 1 תגובה אחרונה
                        0
                        • sivan22S sivan22

                          מהפכת הAI כבר כאן, ואחד הכלים החמים ביותר לאחרונה הוא עורך קוד עם סוכן AI מובנה בתוכו. יש חלון צ'אט קטן בתוך עורך הקוד, וניתן לשוחח עם מודל של בינה מלאכותית ולהנחות אותו במילים פשוטות מה אנחנו צריכים, והוא כבר יעשה הכל אבל הכל: לכתוב את הקוד, להריץ אותו, לבדוק שגיאות, להתקין תלויות. וכן, הוא מבין עברית מצויין.

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

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

                          כאן אני אתן פירוט על שלשה כלים כאלו:

                          הראשון, ועליו אני ממליץ למתחילים, הוא windsurf. היתרון המרכזי הוא המחיר: חינמי ללא הגבלה. יש מכסה מסויימת חינמית, פשוט להוריד ולהתחיל לשוחח איתו בעברית.

                          השני, עליו אני ממליץ למתקדמים הוא cline - זהו תוסף לVSCODE בקוד פתוח, שכדי להפעיל אותו נדרש API. אפשר להשתמש גם עם API חינמי של גוגל שניתן להשיג מכאן. אם כי איכות יותר טובה תתקבל בשימוש בAPI בתשלום של אנטרופיק, ניתן להטעין החל מ5$. את המפתח ניתן להשיג לאחר הרשמה כאן.

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

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

                          צ מחובר
                          צ מחובר
                          צבי דורש ציון
                          כתב נערך לאחרונה על ידי צבי דורש ציון
                          #156

                          @sivan22 כתב בהמלצה | לתכנת בלי לדעת תיכנות - היום זה אפשרי:

                          הראשון, ועליו אני ממליץ למתחילים, הוא windsurf. היתרון המרכזי הוא המחיר: חינמי ללא הגבלה

                          הוא כתב לי שנגמר לי הקרדיטים😥
                          מישהו יודע על דרך לעקוף את זה/אם יש זמן שזה אמור להתחדש?

                          צ תגובה 1 תגובה אחרונה
                          0
                          • מ מומחה123

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

                            א מנותק
                            א מנותק
                            א.ל 0
                            כתב נערך לאחרונה על ידי א.ל 0
                            #157

                            @צבי-דורש-ציון
                            @מומחה123 כתב בהמלצה | לתכנת בלי לדעת תיכנות - היום זה אפשרי:

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

                            ככה הייתי עושה תמיד, אבל עכשיו אי אפשר כי בשביל רישום צריך חשבון גוגל,
                            יש אולי דרך אחרת?

                            צ תגובה 1 תגובה אחרונה
                            1
                            • א א.ל 0

                              @צבי-דורש-ציון
                              @מומחה123 כתב בהמלצה | לתכנת בלי לדעת תיכנות - היום זה אפשרי:

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

                              ככה הייתי עושה תמיד, אבל עכשיו אי אפשר כי בשביל רישום צריך חשבון גוגל,
                              יש אולי דרך אחרת?

                              צ מחובר
                              צ מחובר
                              צבי דורש ציון
                              כתב נערך לאחרונה על ידי צבי דורש ציון
                              #158
                              פוסט זה נמחק!
                              נ תגובה 1 תגובה אחרונה
                              0
                              • צ צבי דורש ציון

                                פוסט זה נמחק!

                                נ מנותק
                                נ מנותק
                                נחמן פלח
                                כתב נערך לאחרונה על ידי
                                #159
                                פוסט זה נמחק!
                                תגובה 1 תגובה אחרונה
                                1
                                • צ צבי דורש ציון

                                  @sivan22 כתב בהמלצה | לתכנת בלי לדעת תיכנות - היום זה אפשרי:

                                  הראשון, ועליו אני ממליץ למתחילים, הוא windsurf. היתרון המרכזי הוא המחיר: חינמי ללא הגבלה

                                  הוא כתב לי שנגמר לי הקרדיטים😥
                                  מישהו יודע על דרך לעקוף את זה/אם יש זמן שזה אמור להתחדש?

                                  צ מחובר
                                  צ מחובר
                                  צבי דורש ציון
                                  כתב נערך לאחרונה על ידי צבי דורש ציון
                                  #160

                                  @צבי-דורש-ציון כתב בהמלצה | לתכנת בלי לדעת תיכנות - היום זה אפשרי:

                                  @sivan22 כתב בהמלצה | לתכנת בלי לדעת תיכנות - היום זה אפשרי:

                                  הראשון, ועליו אני ממליץ למתחילים, הוא windsurf. היתרון המרכזי הוא המחיר: חינמי ללא הגבלה

                                  הוא כתב לי שנגמר לי הקרדיטים😥
                                  מישהו יודע על דרך לעקוף את זה/אם יש זמן שזה אמור להתחדש?

                                  בקיצור, אין משהו חינמי לא מוגבל, אבל באיכות טובה? (או לכה"פ מוגבל אבל אחרי איזה חודש חוזר עוד פעם האפשרות).

                                  ניסיתי להוריד את זה מפרופיל נוסף ולהתקין, אבל זה לא מתקין נוסף ונשאר מחובר לפרופיל הישן, יש איך לשנות את זה?

                                  sivan22S צ 2 תגובות תגובה אחרונה
                                  0
                                  • צ צבי דורש ציון

                                    @צבי-דורש-ציון כתב בהמלצה | לתכנת בלי לדעת תיכנות - היום זה אפשרי:

                                    @sivan22 כתב בהמלצה | לתכנת בלי לדעת תיכנות - היום זה אפשרי:

                                    הראשון, ועליו אני ממליץ למתחילים, הוא windsurf. היתרון המרכזי הוא המחיר: חינמי ללא הגבלה

                                    הוא כתב לי שנגמר לי הקרדיטים😥
                                    מישהו יודע על דרך לעקוף את זה/אם יש זמן שזה אמור להתחדש?

                                    בקיצור, אין משהו חינמי לא מוגבל, אבל באיכות טובה? (או לכה"פ מוגבל אבל אחרי איזה חודש חוזר עוד פעם האפשרות).

                                    ניסיתי להוריד את זה מפרופיל נוסף ולהתקין, אבל זה לא מתקין נוסף ונשאר מחובר לפרופיל הישן, יש איך לשנות את זה?

                                    sivan22S מנותק
                                    sivan22S מנותק
                                    sivan22
                                    כתב נערך לאחרונה על ידי
                                    #161

                                    @צבי-דורש-ציון אפשר להשתמש בcline עם api של ג'מיני. כתבתי יותר פרטים על cline למעלה.

                                    צ Y 2 תגובות תגובה אחרונה
                                    3
                                    • sivan22S sivan22

                                      @צבי-דורש-ציון אפשר להשתמש בcline עם api של ג'מיני. כתבתי יותר פרטים על cline למעלה.

                                      צ מחובר
                                      צ מחובר
                                      צבי דורש ציון
                                      כתב נערך לאחרונה על ידי צבי דורש ציון
                                      #162

                                      @sivan22 דבר ראשון תודה רבה! אבל זה חסום בדרגה שלי בנטפרי...
                                      יש איך לשנות את התוכנה שתלך לפרופיל השני שלי?

                                      תגובה 1 תגובה אחרונה
                                      0
                                      • יום_שמחי מנותק
                                        יום_שמחי מנותק
                                        יום_שמח
                                        כתב נערך לאחרונה על ידי
                                        #163

                                        לא יודע אם רלוונטי
                                        אבל אחלה לאתר למייל פיקטיבי
                                        https://relay.firefox.com/accounts/fxa/login/?process=login

                                        אהבת תן לייק

                                        צ תגובה 1 תגובה אחרונה
                                        1
                                        • sivan22S sivan22

                                          מהפכת הAI כבר כאן, ואחד הכלים החמים ביותר לאחרונה הוא עורך קוד עם סוכן AI מובנה בתוכו. יש חלון צ'אט קטן בתוך עורך הקוד, וניתן לשוחח עם מודל של בינה מלאכותית ולהנחות אותו במילים פשוטות מה אנחנו צריכים, והוא כבר יעשה הכל אבל הכל: לכתוב את הקוד, להריץ אותו, לבדוק שגיאות, להתקין תלויות. וכן, הוא מבין עברית מצויין.

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

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

                                          כאן אני אתן פירוט על שלשה כלים כאלו:

                                          הראשון, ועליו אני ממליץ למתחילים, הוא windsurf. היתרון המרכזי הוא המחיר: חינמי ללא הגבלה. יש מכסה מסויימת חינמית, פשוט להוריד ולהתחיל לשוחח איתו בעברית.

                                          השני, עליו אני ממליץ למתקדמים הוא cline - זהו תוסף לVSCODE בקוד פתוח, שכדי להפעיל אותו נדרש API. אפשר להשתמש גם עם API חינמי של גוגל שניתן להשיג מכאן. אם כי איכות יותר טובה תתקבל בשימוש בAPI בתשלום של אנטרופיק, ניתן להטעין החל מ5$. את המפתח ניתן להשיג לאחר הרשמה כאן.

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

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

                                          א מנותק
                                          א מנותק
                                          אלף שין
                                          כתב נערך לאחרונה על ידי
                                          #164

                                          @sivan22 כתב בהמלצה | לתכנת בלי לדעת תיכנות - היום זה אפשרי:

                                          היתרון המרכזי הוא המחיר: חינמי ללא הגבלה

                                          מה הפשט?

                                          sivan22S תגובה 1 תגובה אחרונה
                                          0

                                          • התחברות

                                          • אין לך חשבון עדיין? הרשמה

                                          • התחברו או הירשמו כדי לחפש.
                                          • פוסט ראשון
                                            פוסט אחרון
                                          0
                                          • חוקי הפורום
                                          • לא נפתר
                                          • משתמשים
                                          • חיפוש גוגל בפורום
                                          • צור קשר