diff --git a/1c-enterprise/daily/index.xml b/1c-enterprise/daily/index.xml index 3b0c95c2496..c473bce3cfe 100644 --- a/1c-enterprise/daily/index.xml +++ b/1c-enterprise/daily/index.xml @@ -1,7 +1,7 @@ GitHub 1C Enterprise Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:28:37Z + 2024-12-20T01:28:28Z Daily Trending of 1C Enterprise in GitHub \ No newline at end of file diff --git a/2-dimensional-array/daily/index.xml b/2-dimensional-array/daily/index.xml index 2ef93a8322a..6a7a32f76f8 100644 --- a/2-dimensional-array/daily/index.xml +++ b/2-dimensional-array/daily/index.xml @@ -1,7 +1,7 @@ GitHub 2-Dimensional Array Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:28:38Z + 2024-12-20T01:28:28Z Daily Trending of 2-Dimensional Array in GitHub \ No newline at end of file diff --git a/4d/daily/index.xml b/4d/daily/index.xml index e8a5520297b..a00e11b4eb7 100644 --- a/4d/daily/index.xml +++ b/4d/daily/index.xml @@ -1,7 +1,7 @@ GitHub 4D Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:28:44Z + 2024-12-20T01:28:36Z Daily Trending of 4D in GitHub \ No newline at end of file diff --git a/abap-cds/daily/index.xml b/abap-cds/daily/index.xml index 80ba2ba9c8d..96e834f12ce 100644 --- a/abap-cds/daily/index.xml +++ b/abap-cds/daily/index.xml @@ -1,7 +1,7 @@ GitHub ABAP CDS Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:28:45Z + 2024-12-20T01:28:35Z Daily Trending of ABAP CDS in GitHub \ No newline at end of file diff --git a/abap/daily/index.xml b/abap/daily/index.xml index 8c280432f98..e9282bceb84 100644 --- a/abap/daily/index.xml +++ b/abap/daily/index.xml @@ -1,7 +1,7 @@ GitHub ABAP Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:28:45Z + 2024-12-20T01:28:37Z Daily Trending of ABAP in GitHub \ No newline at end of file diff --git a/abnf/daily/index.xml b/abnf/daily/index.xml index e741569866b..ffe7ebb4ade 100644 --- a/abnf/daily/index.xml +++ b/abnf/daily/index.xml @@ -1,7 +1,7 @@ GitHub ABNF Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:28:45Z + 2024-12-20T01:28:36Z Daily Trending of ABNF in GitHub \ No newline at end of file diff --git a/actionscript/daily/index.xml b/actionscript/daily/index.xml index 67cb6ba347c..add495c973b 100644 --- a/actionscript/daily/index.xml +++ b/actionscript/daily/index.xml @@ -1,7 +1,7 @@ GitHub ActionScript Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:28:46Z + 2024-12-20T01:28:38Z Daily Trending of ActionScript in GitHub \ No newline at end of file diff --git a/ada/daily/index.xml b/ada/daily/index.xml index 826247d1964..b710a6d662f 100644 --- a/ada/daily/index.xml +++ b/ada/daily/index.xml @@ -1,7 +1,7 @@ GitHub Ada Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:28:46Z + 2024-12-20T01:28:38Z Daily Trending of Ada in GitHub \ No newline at end of file diff --git a/adobe-font-metrics/daily/index.xml b/adobe-font-metrics/daily/index.xml index b1d3c53a51e..dc51a05bd16 100644 --- a/adobe-font-metrics/daily/index.xml +++ b/adobe-font-metrics/daily/index.xml @@ -1,7 +1,7 @@ GitHub Adobe Font Metrics Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:28:47Z + 2024-12-20T01:28:37Z Daily Trending of Adobe Font Metrics in GitHub \ No newline at end of file diff --git a/agda/daily/index.xml b/agda/daily/index.xml index 54f25cef5f8..8692d411195 100644 --- a/agda/daily/index.xml +++ b/agda/daily/index.xml @@ -1,7 +1,7 @@ GitHub Agda Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:28:49Z + 2024-12-20T01:28:39Z Daily Trending of Agda in GitHub \ No newline at end of file diff --git a/ags-script/daily/index.xml b/ags-script/daily/index.xml index d226443fef5..729ac6b9586 100644 --- a/ags-script/daily/index.xml +++ b/ags-script/daily/index.xml @@ -1,7 +1,7 @@ GitHub AGS Script Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:28:50Z + 2024-12-20T01:28:39Z Daily Trending of AGS Script in GitHub \ No newline at end of file diff --git a/aidl/daily/index.xml b/aidl/daily/index.xml index e594162a94c..1b4379ca4d1 100644 --- a/aidl/daily/index.xml +++ b/aidl/daily/index.xml @@ -1,7 +1,7 @@ GitHub AIDL Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:28:50Z + 2024-12-20T01:28:40Z Daily Trending of AIDL in GitHub \ No newline at end of file diff --git a/al/daily/index.xml b/al/daily/index.xml index 84a461e8abe..76aaee4ef6e 100644 --- a/al/daily/index.xml +++ b/al/daily/index.xml @@ -1,7 +1,7 @@ GitHub AL Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:28:50Z + 2024-12-20T01:28:40Z Daily Trending of AL in GitHub \ No newline at end of file diff --git a/all/daily/index.xml b/all/daily/index.xml index 453139b2612..dbd0c37b53a 100644 --- a/all/daily/index.xml +++ b/all/daily/index.xml @@ -1,28 +1,28 @@ GitHub All Languages Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:28:39Z + 2024-12-20T01:28:29Z Daily Trending of All Languages in GitHub - unitreerobotics/unitree_rl_gym - 2024-12-19T01:28:39Z - tag:github.com,2024-12-19:/unitreerobotics/unitree_rl_gym - - <p></p><hr><h1>Unitree RL GYM</h1> <p>This is a simple example of using Unitree Robots for reinforcement learning, including Unitree Go2, H1, H1_2, G1</p> <table> <thead> <tr> <th>Isaac Gym</th> <th>Mujoco</th> <th>Physical</th> </tr> </thead> <tbody> <tr> <td><a href="https://oss-global-cdn.unitree.com/static/5bbc5ab1d551407080ca9d58d7bec1c8.mp4"><img src="https://oss-global-cdn.unitree.com/static/32f06dc9dfe4452dac300dda45e86b34.GIF" width="240px"></a></td> <td><a href="https://oss-global-cdn.unitree.com/static/5aa48535ffd641e2932c0ba45c8e7854.mp4"><img src="https://oss-global-cdn.unitree.com/static/244cd5c4f823495fbfb67ef08f56aa33.GIF" width="240px"></a></td> <td><a href="https://oss-global-cdn.unitree.com/static/0818dcf7a6874b92997354d628adcacd.mp4"><img src="https://oss-global-cdn.unitree.com/static/78c61459d3ab41448cfdb31f6a537e8b.GIF" width="240px"></a></td> </tr> </tbody> </table> <h2>1. Installation</h2> <ol> <li> <p>Create a new python virtual env with python 3.8</p> </li> <li> <p>Install pytorch 2.3.1 with cuda-12.1:</p> <pre><code class="language-bash">pip install torch==2.3.1 torchvision==0.18.1 torchaudio==2.3.1 --index-url https://download.pytorch.org/whl/cu121 </code></pre> </li> <li> <p>Install Isaac Gym</p> <ul> <li>Download and install Isaac Gym Preview 4 from <a href="https://developer.nvidia.com/isaac-gym">https://developer.nvidia.com/isaac-gym</a></li> <li><code>cd isaacgym/python &amp;&amp; pip install -e .</code></li> <li>Try running an example <code>cd examples &amp;&amp; python 1080_balls_of_solitude.py</code></li> <li>For troubleshooting check docs isaacgym/docs/index.html</li> </ul> </li> <li> <p>Install rsl_rl (PPO implementation)</p> <ul> <li>Clone <a href="https://github.com/leggedrobotics/rsl_rl">https://github.com/leggedrobotics/rsl_rl</a></li> <li><code>cd rsl_rl &amp;&amp; git checkout v1.0.2 &amp;&amp; pip install -e .</code></li> </ul> </li> <li> <p>Install unitree_rl_gym</p> <ul> <li>Navigate to the folder <code>unitree_rl_gym</code></li> <li><code>pip install -e .</code></li> </ul> </li> <li> <p>Install unitree_sdk2py (Optional for depoly on real robot)</p> <ul> <li>Clone <a href="https://github.com/unitreerobotics/unitree_sdk2_python">https://github.com/unitreerobotics/unitree_sdk2_python</a></li> <li><code>cd unitree_sdk2_python &amp; pip install -e .</code></li> </ul> </li> </ol> <h2>2. Train in Isaac Gym</h2> <ol> <li> <p>Train: <code>python legged_gym/scripts/train.py --task=go2</code></p> <ul> <li>To run on CPU add following arguments: <code>--sim_device=cpu</code>, <code>--rl_device=cpu</code> (sim on CPU and rl on GPU is possible).</li> <li>To run headless (no rendering) add <code>--headless</code>.</li> <li><strong>Important</strong> : To improve performance, once the training starts press <code>v</code> to stop the rendering. You can then enable it later to check the progress.</li> <li>The trained policy is saved in <code>logs/&lt;experiment_name&gt;/&lt;date_time&gt;_&lt;run_name&gt;/model_&lt;iteration&gt;.pt</code>. Where <code>&lt;experiment_name&gt;</code> and <code>&lt;run_name&gt;</code> are defined in the train config.</li> <li>The following command line arguments override the values set in the config files:</li> <li>--task TASK: Task name.</li> <li>--resume: Resume training from a checkpoint</li> <li>--experiment_name EXPERIMENT_NAME: Name of the experiment to run or load.</li> <li>--run_name RUN_NAME: Name of the run.</li> <li>--load_run LOAD_RUN: Name of the run to load when resume=True. If -1: will load the last run.</li> <li>--checkpoint CHECKPOINT: Saved model checkpoint number. If -1: will load the last checkpoint.</li> <li>--num_envs NUM_ENVS: Number of environments to create.</li> <li>--seed SEED: Random seed.</li> <li>--max_iterations MAX_ITERATIONS: Maximum number of training iterations.</li> </ul> </li> <li> <p>Play:<code>python legged_gym/scripts/play.py --task=go2</code></p> <ul> <li>By default, the loaded policy is the last model of the last run of the experiment folder.</li> <li>Other runs/model iteration can be selected by setting <code>load_run</code> and <code>checkpoint</code> in the train config.</li> </ul> </li> </ol> <h3>2.1 Play Demo</h3> <table> <thead> <tr> <th>Go2</th> <th>G1</th> <th>H1</th> <th>H1_2</th> </tr> </thead> <tbody> <tr> <td><a href="https://oss-global-cdn.unitree.com/static/d2e8da875473457c8d5d69c3de58b24d.mp4"><img src="https://oss-global-cdn.unitree.com/static/ba006789e0af4fe3867255f507032cd7.GIF" alt="go2"></a></td> <td><a href="https://oss-global-cdn.unitree.com/static/5bbc5ab1d551407080ca9d58d7bec1c8.mp4"><img src="https://oss-global-cdn.unitree.com/static/32f06dc9dfe4452dac300dda45e86b34.GIF" alt="g1"></a></td> <td><a href="https://oss-global-cdn.unitree.com/static/522128f4640c4f348296d2761a33bf98.mp4"><img src="https://oss-global-cdn.unitree.com/static/fa04e73966934efa9838e9c389f48fa2.GIF" alt="h1"></a></td> <td><a href="https://oss-global-cdn.unitree.com/static/15fa46984f2343cb83342fd39f5ab7b2.mp4"><img src="https://oss-global-cdn.unitree.com/static/83ed59ca0dab4a51906aff1f93428650.GIF" alt="h1_2"></a></td> </tr> </tbody> </table> <h2>3. Sim in Mujoco</h2> <h3>3.1 Mujoco Usage</h3> <p>To execute sim2sim in mujoco, execute the following command:</p> <pre><code class="language-bash">python deploy/deploy_mujoco/deploy_mujoco.py {config_name} </code></pre> <p><code>config_name</code>: The file name of the configuration file. The configuration file will be found under <code>deploy/deploy_mujoco/configs/</code>, for example <code>g1.yaml</code>, <code>h1.yaml</code>, <code>h1_2.yaml</code>.</p> <p><strong>example</strong>:</p> <pre><code class="language-bash">python deploy/deploy_mujoco/deploy_mujoco.py g1.yaml </code></pre> <h3>3.2 Mujoco Demo</h3> <table> <thead> <tr> <th>G1</th> <th>H1</th> <th>H1_2</th> </tr> </thead> <tbody> <tr> <td><a href="https://oss-global-cdn.unitree.com/static/5aa48535ffd641e2932c0ba45c8e7854.mp4"><img src="https://oss-global-cdn.unitree.com/static/244cd5c4f823495fbfb67ef08f56aa33.GIF" alt="mujoco_g1"></a></td> <td><a href="https://oss-global-cdn.unitree.com/static/8934052becd84d08bc8c18c95849cf32.mp4"><img src="https://oss-global-cdn.unitree.com/static/7ab4e8392e794e01b975efa205ef491e.GIF" alt="mujoco_h1"></a></td> <td><a href="https://oss-global-cdn.unitree.com/static/ee7ee85bd6d249989a905c55c7a9d305.mp4"><img src="https://oss-global-cdn.unitree.com/static/2905e2fe9b3340159d749d5e0bc95cc4.GIF" alt="mujoco_h1_2"></a></td> </tr> </tbody> </table> <h2>4. Depoly on Physical Robot</h2> <p>reference to <a href="https://raw.githubusercontent.com/unitreerobotics/unitree_rl_gym/main/deploy/deploy_real/README.md">Deploy on Physical Robot(English)</a> | <a href="https://raw.githubusercontent.com/unitreerobotics/unitree_rl_gym/main/deploy/deploy_real/README.zh.md">实物部署(简体中文)</a></p> + konfig-dev/konfig + 2024-12-20T01:28:29Z + tag:github.com,2024-12-20:/konfig-dev/konfig + + <p>SDK & API Docs Generator. Sunset as of December 2024</p><hr><h1>Konfig</h1> <p>The monorepo that holds everything...</p> <h2>Getting started</h2> <p>Get the repository on your local machine. <strong>Takes a minute.</strong></p> <pre><code class="language-shell">git clone https://github.com/konfig-dev/konfig --recursive cd konfig </code></pre> <p>This repository has submodules so pull all of them. <strong>Also take a few minutes.</strong></p> <pre><code class="language-shell">git submodule update --init --recursive --remote --merge </code></pre> <h2>Environment Setup</h2> <ol> <li> <p>Run Postgres as a background process</p> <pre><code class="language-shell"># in /konfig brew install postgresql mkdir -p postgres/data initdb -D ./postgres/data pg_ctl -D ./postgres/data start </code></pre> </li> <li> <p>Setup <code>.env</code> file in <code>generator/konfig-dash</code> to something like:</p> <pre><code>DATABASE_URL="postgresql://dylanhuang@localhost:5432/konfig_dev?connection_limit=1" TEST_DATABASE_URL="postgresql://dylanhuang@localhost:5432/konfig_test?connection_limit=1" AWS_ACCESS_KEY_ID=XXXXXX AWS_SECRET_ACCESS_KEY=XXXXXX # Used to encrypt/decrypt session cookies. Change this value and re-deploy to log out all users of your app at once. SESSION_SECRET=ZUWpQ9pB4fB5FFpjHLi8Z2qadzXkdTKhHBsXmGmjNdxtrZbevaCYWSpw7G7cHBhh </code></pre> </li> </ol> <p>Paste this into your <code>~/.zshrc</code> or <code>~/.bashrc</code></p> <pre><code class="language-bash">if [ -f $HOME/.envvars ]; then . $HOME/.envvars else print "404: ~/.envvars not found." fi </code></pre> <p>Then create <code>~/.envvars</code> with values from Dylan.</p> <h2>How to run Konfig</h2> <ol> <li> <p>Make sure <code>node_modules</code> is initiated in <code>konfig-dash</code></p> <pre><code class="language-shell">cd generator/konfig-dash yarn # takes some time yarn rw prisma migrate dev # setup the DB </code></pre> </li> <li> <p>Start the server with <code>yarn dev</code></p> <pre><code class="language-shell"># inside generator/konfig-dash yarn dev </code></pre> </li> <li> <p>Start <code>generator/konfig-generator-api</code> w/ IntelliJ</p> </li> <li> <p><code>cd</code> into an SDK repo and run <code>konfig generate -d</code></p> </li> </ol> <h2>Making Changes</h2> <p>See <a href="https://github.com/changesets/changesets">Changesets</a></p> - seleniumbase/SeleniumBase - 2024-12-19T01:28:39Z - tag:github.com,2024-12-19:/seleniumbase/SeleniumBase - - <p>Python APIs for web automation, testing, and bypassing bot-detection.</p><hr><h1>SeleniumBase</h1> <p align="center"><a href="https://github.com/seleniumbase/SeleniumBase/"><img src="https://seleniumbase.github.io/cdn/img/super_logo_sb3.png" alt="SeleniumBase" title="SeleniumBase" width="350"></a></p> <p align="center" class="hero__title"><b>All-in-one Browser Automation Framework:<br>Web Crawling / Testing / Scraping / Stealth</b></p> <p align="center"><a href="https://pypi.python.org/pypi/seleniumbase" target="_blank"><img src="https://img.shields.io/pypi/v/seleniumbase.svg?color=3399EE" alt="PyPI version"></a> <a href="https://github.com/seleniumbase/SeleniumBase/releases" target="_blank"><img src="https://img.shields.io/github/v/release/seleniumbase/SeleniumBase.svg?color=22AAEE" alt="GitHub version"></a> <a href="https://seleniumbase.io"><img src="https://img.shields.io/badge/docs-seleniumbase.io-11BBAA.svg?sanitize=true" alt="SeleniumBase Docs"></a> <a href="https://github.com/seleniumbase/SeleniumBase/actions" target="_blank"><img src="https://github.com/seleniumbase/SeleniumBase/workflows/CI%20build/badge.svg?sanitize=true" alt="SeleniumBase GitHub Actions"></a> <a href="https://discord.gg/EdhQTn3EyE" target="_blank"><img src="https://img.shields.io/badge/join-discord-infomational" alt="Join the SeleniumBase chat on Discord"></a></p> <p align="center"> <a href="https://raw.githubusercontent.com/seleniumbase/SeleniumBase/master/#python_installation">🚀 Start</a> | <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/help_docs/features_list.md">🏰 Features</a> | <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/help_docs/customizing_test_runs.md">🎛️ Options</a> | <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/examples/ReadMe.md">📚 Examples</a> | <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/seleniumbase/console_scripts/ReadMe.md">🌠 Scripts</a> | <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/help_docs/mobile_testing.md">📱 Mobile</a> <br> <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/help_docs/method_summary.md">📘 APIs</a> | <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/help_docs/syntax_formats.md"> 🔠 Formats</a> | <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/help_docs/recorder_mode.md">🔴 Recorder</a> | <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/examples/example_logs/ReadMe.md">📊 Dashboard</a> | <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/help_docs/locale_codes.md">🗾 Locales</a> | <a href="https://seleniumbase.io/devices/?url=seleniumbase.com">💻 Farm</a> <br> <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/help_docs/commander.md">🎖️ GUI</a> | <a href="https://seleniumbase.io/demo_page">📰 TestPage</a> | <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/help_docs/uc_mode.md">👤 UC Mode</a> | <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/examples/cdp_mode/ReadMe.md">🐙 CDP Mode</a> | <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/examples/chart_maker/ReadMe.md">📶 Charts</a> | <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/seleniumbase/utilities/selenium_grid/ReadMe.md">🌐 Grid</a> <br> <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/help_docs/how_it_works.md">👁️ How</a> | <a href="https://github.com/seleniumbase/SeleniumBase/tree/master/examples/migration/raw_selenium">🚝 Migrate</a> | <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/help_docs/case_plans.md">🗂️ CasePlans</a> | <a href="https://github.com/seleniumbase/SeleniumBase/tree/master/examples/boilerplates">♻️ Template</a> | <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/examples/master_qa/ReadMe.md">🧬 Hybrid</a> | <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/examples/tour_examples/ReadMe.md">🚎 Tours</a> <br> <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/integrations/github/workflows/ReadMe.md">🤖 CI/CD</a> | <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/help_docs/js_package_manager.md">🕹️ JSMgr</a> | <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/help_docs/translations.md">🌏 Translator</a> | <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/examples/presenter/ReadMe.md">🎞️ Presenter</a> | <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/examples/dialog_boxes/ReadMe.md">🛂 Dialog</a> | <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/examples/visual_testing/ReadMe.md">🖼️ Visual</a> <br> </p> <p>SeleniumBase is the professional toolkit for web automation activities. Built for testing websites, bypassing CAPTCHAs, enhancing productivity, completing tasks, and scaling your business.</p> <hr> <p>📚 Learn from <a href="https://github.com/seleniumbase/SeleniumBase/tree/master/examples"><strong>over 200 examples</strong> in the <strong>SeleniumBase/examples/</strong> folder</a>.</p> <p>🐙 Note that <a translate="no" href="https://github.com/seleniumbase/SeleniumBase/raw/master/help_docs/uc_mode.md"><b>UC Mode</b></a> / <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/examples/cdp_mode/ReadMe.md"><b>CDP Mode</b></a> (Stealth Mode) have their own ReadMe files.</p> <p>ℹ️ Most scripts run with raw <code translate="no"><b>python</b></code>, although some scripts use <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/help_docs/syntax_formats.md">Syntax Formats</a> that expect <a href="https://docs.pytest.org/en/latest/how-to/usage.html" translate="no"><b>pytest</b></a> (a Python unit-testing framework included with SeleniumBase that can discover, collect, and run tests automatically).</p> <hr> <p align="left">📗 Here's <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/examples/raw_google.py">raw_google.py</a>, which performs a Google search:</p> <pre><code class="language-python">from seleniumbase import SB with SB(test=True) as sb: sb.open("https://google.com/ncr") sb.type('[title="Search"]', "SeleniumBase GitHub page\n") sb.click('[href*="github.com/seleniumbase/"]') sb.save_screenshot_to_logs() # ./latest_logs/ print(sb.get_page_title()) </code></pre> <blockquote> <p><code>python raw_google.py</code></p> </blockquote> <p><a href="https://github.com/seleniumbase/SeleniumBase/raw/master/examples/raw_google.py"><img src="https://seleniumbase.github.io/cdn/gif/google_search.gif" alt="SeleniumBase Test" title="SeleniumBase Test" width="420"></a></p> <hr> <p align="left">📗 Here's an example of bypassing Cloudflare's challenge page: <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/examples/cdp_mode/raw_gitlab.py">SeleniumBase/examples/cdp_mode/raw_gitlab.py</a></p> <pre><code class="language-python">from seleniumbase import SB with SB(uc=True, test=True, locale_code="en") as sb: url = "https://gitlab.com/users/sign_in" sb.activate_cdp_mode(url) sb.uc_gui_click_captcha() sb.sleep(2) </code></pre> <p><img src="https://seleniumbase.github.io/other/cf_sec.jpg" title="SeleniumBase" width="332"> <img src="https://seleniumbase.github.io/other/gitlab_bypass.png" title="SeleniumBase" width="288"></p> <hr> <p align="left">📗 Here's <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/examples/test_get_swag.py">test_get_swag.py</a>, which tests an e-commerce site:</p> <pre><code class="language-python">from seleniumbase import BaseCase BaseCase.main(__name__, __file__) # Call pytest class MyTestClass(BaseCase): def test_swag_labs(self): self.open("https://www.saucedemo.com") self.type("#user-name", "standard_user") self.type("#password", "secret_sauce\n") self.assert_element("div.inventory_list") self.click('button[name*="backpack"]') self.click("#shopping_cart_container a") self.assert_text("Backpack", "div.cart_item") self.click("button#checkout") self.type("input#first-name", "SeleniumBase") self.type("input#last-name", "Automation") self.type("input#postal-code", "77123") self.click("input#continue") self.click("button#finish") self.assert_text("Thank you for your order!") </code></pre> <blockquote> <p><code>pytest test_get_swag.py</code></p> </blockquote> <p><a href="https://github.com/seleniumbase/SeleniumBase/raw/master/examples/test_get_swag.py"><img src="https://seleniumbase.github.io/cdn/gif/fast_swag_2.gif" alt="SeleniumBase Test" title="SeleniumBase Test" width="480"></a></p> <blockquote> <p>(The default browser is <code>--chrome</code> if not set.)</p> </blockquote> <hr> <p align="left">📗 Here's <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/examples/test_coffee_cart.py" target="_blank">test_coffee_cart.py</a>, which verifies an e-commerce site:</p> <pre><code class="language-bash">pytest test_coffee_cart.py --demo </code></pre> <p align="left"><a href="https://seleniumbase.io/coffee/" target="_blank"><img src="https://seleniumbase.github.io/cdn/gif/coffee_cart.gif" width="480" alt="SeleniumBase Coffee Cart Test" title="SeleniumBase Coffee Cart Test"></a></p> <blockquote> <p>(<code translate="no">--demo</code> mode slows down tests and highlights actions)</p> </blockquote> <hr> <p><a id="multiple_examples"></a></p> <p align="left">📗 Here's <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/examples/test_demo_site.py" target="_blank">test_demo_site.py</a>, which covers several actions:</p> <pre><code class="language-bash">pytest test_demo_site.py </code></pre> <p align="left"><a href="https://seleniumbase.io/demo_page" target="_blank"><img src="https://seleniumbase.github.io/cdn/gif/demo_page_5.gif" width="480" alt="SeleniumBase Example" title="SeleniumBase Example"></a></p> <blockquote> <p>Easy to type, click, select, toggle, drag &amp; drop, and more.</p> </blockquote> <p>(For more examples, see the <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/examples/ReadMe.md">SeleniumBase/examples/</a> folder.)</p> <hr> <p align="left"><a href="https://github.com/seleniumbase/SeleniumBase/"><img src="https://seleniumbase.github.io/cdn/img/super_logo_sb3.png" alt="SeleniumBase" title="SeleniumBase" width="232"></a></p> <blockquote> <p dir="auto"><strong>Explore the README:</strong></p> <ul dir="auto"> <li><a href="https://raw.githubusercontent.com/seleniumbase/SeleniumBase/master/#install_seleniumbase"><strong>Get Started / Installation</strong></a></li> <li><a href="https://raw.githubusercontent.com/seleniumbase/SeleniumBase/master/#basic_example_and_usage"><strong>Basic Example / Usage</strong></a></li> <li><a href="https://raw.githubusercontent.com/seleniumbase/SeleniumBase/master/#common_methods"><strong>Common Test Methods</strong></a></li> <li><a href="https://raw.githubusercontent.com/seleniumbase/SeleniumBase/master/#fun_facts"><strong>Fun Facts / Learn More</strong></a></li> <li><a href="https://raw.githubusercontent.com/seleniumbase/SeleniumBase/master/#demo_mode_and_debugging"><strong>Demo Mode / Debugging</strong></a></li> <li><a href="https://raw.githubusercontent.com/seleniumbase/SeleniumBase/master/#command_line_options"><strong>Command-line Options</strong></a></li> <li><a href="https://raw.githubusercontent.com/seleniumbase/SeleniumBase/master/#directory_configuration"><strong>Directory Configuration</strong></a></li> <li><a href="https://raw.githubusercontent.com/seleniumbase/SeleniumBase/master/#seleniumbase_dashboard"><strong>SeleniumBase Dashboard</strong></a></li> <li><a href="https://raw.githubusercontent.com/seleniumbase/SeleniumBase/master/#creating_visual_reports"><strong>Generating Test Reports</strong></a></li> </ul> </blockquote> <hr> <details> <summary> ▶️ How is <b>SeleniumBase</b> different from raw Selenium? (<b>click to expand</b>)</summary> <div> <p>💡 SeleniumBase is a Python framework for browser automation and testing. SeleniumBase uses <a href="https://www.w3.org/TR/webdriver2/#endpoints" target="_blank">Selenium/WebDriver</a> APIs and incorporates test-runners such as <code translate="no">pytest</code>, <code translate="no">pynose</code>, and <code translate="no">behave</code> to provide organized structure, test discovery, test execution, test state (<i>eg. passed, failed, or skipped</i>), and command-line options for changing default settings (<i>eg. browser selection</i>). With raw Selenium, you would need to set up your own options-parser for configuring tests from the command-line.</p> <p>💡 SeleniumBase's driver manager gives you more control over automatic driver downloads. (Use <code translate="no">--driver-version=VER</code> with your <code translate="no">pytest</code> run command to specify the version.) By default, SeleniumBase will download a driver version that matches your major browser version if not set.</p> <p>💡 SeleniumBase automatically detects between CSS Selectors and XPath, which means you don't need to specify the type of selector in your commands (<i>but optionally you could</i>).</p> <p>💡 SeleniumBase methods often perform multiple actions in a single method call. For example, <code translate="no">self.type(selector, text)</code> does the following:<br>1. Waits for the element to be visible.<br>2. Waits for the element to be interactive.<br>3. Clears the text field.<br>4. Types in the new text.<br>5. Presses Enter/Submit if the text ends in <code translate="no">"\n"</code>.<br>With raw Selenium, those actions require multiple method calls.</p> <p>💡 SeleniumBase uses default timeout values when not set:<br> ✅ <code translate="no">self.click("button")</code><br> With raw Selenium, methods would fail instantly (<i>by default</i>) if an element needed more time to load:<br> ❌ <code translate="no">self.driver.find_element(by="css selector", value="button").click()</code><br> (Reliable code is better than unreliable code.)</p> <p>💡 SeleniumBase lets you change the explicit timeout values of methods:<br> ✅ <code translate="no">self.click("button", timeout=10)</code><br> With raw Selenium, that requires more code:<br> ❌ <code translate="no">WebDriverWait(driver, 10).until(EC.element_to_be_clickable("css selector", "button")).click()</code><br> (Simple code is better than complex code.)</p> <p>💡 SeleniumBase gives you clean error output when a test fails. With raw Selenium, error messages can get very messy.</p> <p>💡 SeleniumBase gives you the option to generate a dashboard and reports for tests. It also saves screenshots from failing tests to the <code translate="no">./latest_logs/</code> folder. Raw <a href="https://www.selenium.dev/documentation/webdriver/" translate="no" target="_blank">Selenium</a> does not have these options out-of-the-box.</p> <p>💡 SeleniumBase includes desktop GUI apps for running tests, such as <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/help_docs/commander.md" translate="no">SeleniumBase Commander</a> for <code translate="no">pytest</code> and <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/examples/behave_bdd/ReadMe.md" translate="no">SeleniumBase Behave GUI</a> for <code translate="no">behave</code>.</p> <p>💡 SeleniumBase has its own <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/help_docs/recorder_mode.md">Recorder / Test Generator</a> for creating tests from manual browser actions.</p> <p>💡 SeleniumBase comes with <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/help_docs/case_plans.md">test case management software, ("CasePlans")</a>, for organizing tests and step descriptions.</p> <p>💡 SeleniumBase includes tools for <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/examples/chart_maker/ReadMe.md">building data apps, ("ChartMaker")</a>, which can generate JavaScript from Python.</p> </div> </details> <hr> <p>📚 <b>Learn about different ways of writing tests:</b></p> <p align="left">📗📝 Here's <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/examples/test_simple_login.py">test_simple_login.py</a>, which uses <code translate="no"><a href="https://github.com/seleniumbase/SeleniumBase/raw/master/seleniumbase/fixtures/base_case.py">BaseCase</a></code> class inheritance, and runs with <a href="https://docs.pytest.org/en/latest/how-to/usage.html">pytest</a> or <a href="https://github.com/mdmintz/pynose">pynose</a>. (Use <code translate="no">self.driver</code> to access Selenium's raw <code translate="no">driver</code>.)</p> <pre><code class="language-python">from seleniumbase import BaseCase BaseCase.main(__name__, __file__) class TestSimpleLogin(BaseCase): def test_simple_login(self): self.open("seleniumbase.io/simple/login") self.type("#username", "demo_user") self.type("#password", "secret_pass") self.click('a:contains("Sign in")') self.assert_exact_text("Welcome!", "h1") self.assert_element("img#image1") self.highlight("#image1") self.click_link("Sign out") self.assert_text("signed out", "#top_message") </code></pre> <p align="left">📘📝 Here's <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/examples/raw_login_sb.py">raw_login_sb.py</a>, which uses the <b><code translate="no">SB</code></b> Context Manager. Runs with pure <code translate="no">python</code>. (Use <code translate="no">sb.driver</code> to access Selenium's raw <code translate="no">driver</code>.)</p> <pre><code class="language-python">from seleniumbase import SB with SB() as sb: sb.open("seleniumbase.io/simple/login") sb.type("#username", "demo_user") sb.type("#password", "secret_pass") sb.click('a:contains("Sign in")') sb.assert_exact_text("Welcome!", "h1") sb.assert_element("img#image1") sb.highlight("#image1") sb.click_link("Sign out") sb.assert_text("signed out", "#top_message") </code></pre> <p align="left">📙📝 Here's <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/examples/raw_login_driver.py">raw_login_driver.py</a>, which uses the <b><code translate="no">Driver</code></b> Manager. Runs with pure <code translate="no">python</code>. (The <code>driver</code> is an improved version of Selenium's raw <code translate="no">driver</code>, with more methods.)</p> <pre><code class="language-python">from seleniumbase import Driver driver = Driver() try: driver.open("seleniumbase.io/simple/login") driver.type("#username", "demo_user") driver.type("#password", "secret_pass") driver.click('a:contains("Sign in")') driver.assert_exact_text("Welcome!", "h1") driver.assert_element("img#image1") driver.highlight("#image1") driver.click_link("Sign out") driver.assert_text("signed out", "#top_message") finally: driver.quit() </code></pre> <hr> <p><a id="python_installation"></a></p> <h2><img src="https://seleniumbase.github.io/cdn/img/python_logo.png" title="SeleniumBase" width="42"> Set up Python &amp; Git:</h2> <p><a href="https://www.python.org/downloads/"><img src="https://img.shields.io/pypi/pyversions/seleniumbase.svg?color=FACE42" title="Supported Python Versions"></a></p> <p>🔵 Add <b><a href="https://www.python.org/downloads/">Python</a></b> and <b><a href="https://git-scm.com/">Git</a></b> to your System PATH.</p> <p>🔵 Using a <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/help_docs/virtualenv_instructions.md">Python virtual env</a> is recommended.</p> <p><a id="install_seleniumbase"></a></p> <h2><img src="https://seleniumbase.github.io/img/logo7.png" title="SeleniumBase" width="32"> Install SeleniumBase:</h2> <p><strong>You can install <code>seleniumbase</code> from <a href="https://pypi.org/project/seleniumbase/">PyPI</a> or <a href="https://github.com/seleniumbase/SeleniumBase">GitHub</a>:</strong></p> <p>🔵 <strong>How to install <code>seleniumbase</code> from PyPI:</strong></p> <pre><code class="language-bash">pip install seleniumbase </code></pre> <ul> <li>(Add <code>--upgrade</code> OR <code>-U</code> to upgrade SeleniumBase.)</li> <li>(Add <code>--force-reinstall</code> to upgrade indirect packages.)</li> <li>(Use <code>pip3</code> if multiple versions of Python are present.)</li> </ul> <p>🔵 <strong>How to install <code>seleniumbase</code> from a GitHub clone:</strong></p> <pre><code class="language-bash">git clone https://github.com/seleniumbase/SeleniumBase.git cd SeleniumBase/ pip install -e . </code></pre> <p>🔵 <strong>How to upgrade an existing install from a GitHub clone:</strong></p> <pre><code class="language-bash">git pull pip install -e . </code></pre> <p>🔵 <strong>Type <code>seleniumbase</code> or <code>sbase</code> to verify that SeleniumBase was installed successfully:</strong></p> <pre><code class="language-bash"> ___ _ _ ___ / __| ___| |___ _ _ (_)_ _ _ __ | _ ) __ _ ______ \__ \/ -_) / -_) ' \| | \| | ' \ | _ \/ _` (_-&lt; -_) |___/\___|_\___|_||_|_|\_,_|_|_|_\|___/\__,_/__|___| ---------------------------------------------------- ╭──────────────────────────────────────────────────╮ │ * USAGE: "seleniumbase [COMMAND] [PARAMETERS]" │ │ * OR: "sbase [COMMAND] [PARAMETERS]" │ │ │ │ COMMANDS: PARAMETERS / DESCRIPTIONS: │ │ get / install [DRIVER_NAME] [OPTIONS] │ │ methods (List common Python methods) │ │ options (List common pytest options) │ │ behave-options (List common behave options) │ │ gui / commander [OPTIONAL PATH or TEST FILE] │ │ behave-gui (SBase Commander for Behave) │ │ caseplans [OPTIONAL PATH or TEST FILE] │ │ mkdir [DIRECTORY] [OPTIONS] │ │ mkfile [FILE.py] [OPTIONS] │ │ mkrec / codegen [FILE.py] [OPTIONS] │ │ recorder (Open Recorder Desktop App.) │ │ record (If args: mkrec. Else: App.) │ │ mkpres [FILE.py] [LANG] │ │ mkchart [FILE.py] [LANG] │ │ print [FILE] [OPTIONS] │ │ translate [SB_FILE.py] [LANG] [ACTION] │ │ convert [WEBDRIVER_UNITTEST_FILE.py] │ │ extract-objects [SB_FILE.py] │ │ inject-objects [SB_FILE.py] [OPTIONS] │ │ objectify [SB_FILE.py] [OPTIONS] │ │ revert-objects [SB_FILE.py] [OPTIONS] │ │ encrypt / obfuscate │ │ decrypt / unobfuscate │ │ proxy (Start a basic proxy server) │ │ download server (Get Selenium Grid JAR file) │ │ grid-hub [start|stop] [OPTIONS] │ │ grid-node [start|stop] --hub=[HOST/IP] │ │ │ │ * EXAMPLE =&gt; "sbase get chromedriver stable" │ │ * For command info =&gt; "sbase help [COMMAND]" │ │ * For info on all commands =&gt; "sbase --help" │ ╰──────────────────────────────────────────────────╯ </code></pre> <h3>🔵 Downloading webdrivers:</h3> <p>✅ SeleniumBase automatically downloads webdrivers as needed, such as <code>chromedriver</code>.</p> <div></div> <details> <summary> ▶️ Here's sample output from a chromedriver download. (<b>click to expand</b>)</summary> <pre><code class="language-bash">*** chromedriver to download = 131.0.6778.108 (Latest Stable) Downloading chromedriver-mac-arm64.zip from: https://storage.googleapis.com/chrome-for-testing-public/131.0.6778.108/mac-arm64/chromedriver-mac-arm64.zip ... Download Complete! Extracting ['chromedriver'] from chromedriver-mac-arm64.zip ... Unzip Complete! The file [chromedriver] was saved to: ~/github/SeleniumBase/seleniumbase/drivers/ chromedriver Making [chromedriver 131.0.6778.108] executable ... [chromedriver 131.0.6778.108] is now ready for use! </code></pre> </details> <p><a id="basic_example_and_usage"></a></p> <h2><img src="https://seleniumbase.github.io/img/logo7.png" title="SeleniumBase" width="32"> Basic Example / Usage:</h2> <p>🔵 If you've cloned SeleniumBase, you can run tests from the <a href="https://github.com/seleniumbase/SeleniumBase/tree/master/examples">examples/</a> folder.</p> <p align="left">Here's <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/examples/my_first_test.py">my_first_test.py</a>:</p> <pre><code class="language-bash">cd examples/ pytest my_first_test.py </code></pre> <p><a href="https://github.com/seleniumbase/SeleniumBase/raw/master/examples/my_first_test.py"><img src="https://seleniumbase.github.io/cdn/gif/fast_swag_2.gif" alt="SeleniumBase Test" title="SeleniumBase Test" width="480"></a></p> <p align="left"><b>Here's the full code for <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/examples/my_first_test.py">my_first_test.py</a>:</b></p> <pre><code class="language-python">from seleniumbase import BaseCase BaseCase.main(__name__, __file__) class MyTestClass(BaseCase): def test_swag_labs(self): self.open("https://www.saucedemo.com") self.type("#user-name", "standard_user") self.type("#password", "secret_sauce\n") self.assert_element("div.inventory_list") self.assert_exact_text("Products", "span.title") self.click('button[name*="backpack"]') self.click("#shopping_cart_container a") self.assert_exact_text("Your Cart", "span.title") self.assert_text("Backpack", "div.cart_item") self.click("button#checkout") self.type("#first-name", "SeleniumBase") self.type("#last-name", "Automation") self.type("#postal-code", "77123") self.click("input#continue") self.assert_text("Checkout: Overview") self.assert_text("Backpack", "div.cart_item") self.assert_text("29.99", "div.inventory_item_price") self.click("button#finish") self.assert_exact_text("Thank you for your order!", "h2") self.assert_element('img[alt="Pony Express"]') self.js_click("a#logout_sidebar_link") self.assert_element("div#login_button_container") </code></pre> <ul> <li>By default, <strong><a href="https://www.w3schools.com/cssref/css_selectors.asp">CSS Selectors</a></strong> are used for finding page elements.</li> <li>If you're new to CSS Selectors, games like <a href="http://flukeout.github.io/">CSS Diner</a> can help you learn.</li> <li>For more reading, <a href="https://developer.mozilla.org/en-US/docs/Web/CSS/Attribute_selectors">here's an advanced guide on CSS attribute selectors</a>.</li> </ul> <p><a id="common_methods"></a></p> <h3><img src="https://seleniumbase.github.io/img/logo7.png" title="SeleniumBase" width="32"> Here are some common SeleniumBase methods:</h3> <pre><code class="language-python">self.open(url) # Navigate the browser window to the URL. self.type(selector, text) # Update the field with the text. self.click(selector) # Click the element with the selector. self.click_link(link_text) # Click the link containing text. self.go_back() # Navigate back to the previous URL. self.select_option_by_text(dropdown_selector, option) self.hover_and_click(hover_selector, click_selector) self.drag_and_drop(drag_selector, drop_selector) self.get_text(selector) # Get the text from the element. self.get_current_url() # Get the URL of the current page. self.get_page_source() # Get the HTML of the current page. self.get_attribute(selector, attribute) # Get element attribute. self.get_title() # Get the title of the current page. self.switch_to_frame(frame) # Switch into the iframe container. self.switch_to_default_content() # Leave the iframe container. self.open_new_window() # Open a new window in the same browser. self.switch_to_window(window) # Switch to the browser window. self.switch_to_default_window() # Switch to the original window. self.get_new_driver(OPTIONS) # Open a new driver with OPTIONS. self.switch_to_driver(driver) # Switch to the browser driver. self.switch_to_default_driver() # Switch to the original driver. self.wait_for_element(selector) # Wait until element is visible. self.is_element_visible(selector) # Return element visibility. self.is_text_visible(text, selector) # Return text visibility. self.sleep(seconds) # Do nothing for the given amount of time. self.save_screenshot(name) # Save a screenshot in .png format. self.assert_element(selector) # Verify the element is visible. self.assert_text(text, selector) # Verify text in the element. self.assert_exact_text(text, selector) # Verify text is exact. self.assert_title(title) # Verify the title of the web page. self.assert_downloaded_file(file) # Verify file was downloaded. self.assert_no_404_errors() # Verify there are no broken links. self.assert_no_js_errors() # Verify there are no JS errors. </code></pre> <p>🔵 For the complete list of SeleniumBase methods, see: <b><a href="https://github.com/seleniumbase/SeleniumBase/raw/master/help_docs/method_summary.md">Method Summary</a></b></p> <p><a id="fun_facts"></a></p> <h2><img src="https://seleniumbase.github.io/img/logo7.png" title="SeleniumBase" width="32"> Fun Facts / Learn More:</h2> <p>✅ SeleniumBase automatically handles common <a href="https://www.selenium.dev/documentation/webdriver/" target="_blank">WebDriver</a> actions such as launching web browsers before tests, saving screenshots during failures, and closing web browsers after tests.</p> <p>✅ SeleniumBase lets you customize tests via <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/help_docs/customizing_test_runs.md">command-line options</a>.</p> <p>✅ SeleniumBase uses simple syntax for commands. Example:</p> <pre><code class="language-python">self.type("input", "dogs\n") # (The "\n" presses ENTER) </code></pre> <p>Most SeleniumBase scripts can be run with <code translate="no">pytest</code>, <code translate="no">pynose</code>, or pure <code translate="no">python</code>. Not all test runners can run all test formats. For example, tests that use the <code>sb</code> pytest fixture can only be run with <code>pytest</code>. (See <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/help_docs/syntax_formats.md">Syntax Formats</a>) There's also a <a href="https://behave.readthedocs.io/en/stable/gherkin.html#features" target="_blank">Gherkin</a> test format that runs with <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/examples/behave_bdd/ReadMe.md">behave</a>.</p> <pre><code class="language-bash">pytest coffee_cart_tests.py --rs pytest test_sb_fixture.py --demo pytest test_suite.py --rs --html=report.html --dashboard pynose basic_test.py --mobile pynose test_suite.py --headless --report --show-report python raw_sb.py python raw_test_scripts.py behave realworld.feature behave calculator.feature -D rs -D dashboard </code></pre> <p>✅ <code translate="no">pytest</code> includes automatic test discovery. If you don't specify a specific file or folder to run, <code translate="no">pytest</code> will automatically search through all subdirectories for tests to run based on the following criteria:</p> <ul> <li>Python files that start with <code>test_</code> or end with <code>_test.py</code>.</li> <li>Python methods that start with <code>test_</code>.</li> </ul> <p>With a SeleniumBase <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/examples/pytest.ini">pytest.ini</a> file present, you can modify default discovery settings. The Python class name can be anything because <code>seleniumbase.BaseCase</code> inherits <code>unittest.TestCase</code> to trigger autodiscovery.</p> <p>✅ You can do a pre-flight check to see which tests would get discovered by <code translate="no">pytest</code> before the actual run:</p> <pre><code class="language-bash">pytest --co -q </code></pre> <p>✅ You can be more specific when calling <code translate="no">pytest</code> or <code translate="no">pynose</code> on a file:</p> <pre><code class="language-bash">pytest [FILE_NAME.py]::[CLASS_NAME]::[METHOD_NAME] pynose [FILE_NAME.py]:[CLASS_NAME].[METHOD_NAME] </code></pre> <p>✅ No More Flaky Tests! SeleniumBase methods automatically wait for page elements to finish loading before interacting with them (<i>up to a timeout limit</i>). This means <b>you no longer need random <span><code translate="no">time.sleep()</code></span> statements</b> in your scripts.</p> <img src="https://img.shields.io/badge/Flaky%20Tests%3F-%20NO%21-11BBDD.svg?sanitize=true" alt="NO MORE FLAKY TESTS!"> <p>✅ SeleniumBase supports all major browsers and operating systems:</p> <p><b>Browsers:</b> Chrome, Edge, Firefox, and Safari.</p> <p><b>Systems:</b> Linux/Ubuntu, macOS, and Windows.</p> <p>✅ SeleniumBase works on all popular CI/CD platforms:</p> <p><a href="https://github.com/seleniumbase/SeleniumBase/raw/master/integrations/github/workflows/ReadMe.md"><img alt="GitHub Actions integration" src="https://img.shields.io/badge/GitHub_Actions-12B2C2.svg?logo=GitHubActions&amp;logoColor=CFFFC2"></a> <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/integrations/azure/jenkins/ReadMe.md"><img alt="Jenkins integration" src="https://img.shields.io/badge/Jenkins-32B242.svg?logo=jenkins&amp;logoColor=white"></a> <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/integrations/azure/azure_pipelines/ReadMe.md"><img alt="Azure integration" src="https://img.shields.io/badge/Azure-2288EE.svg?logo=AzurePipelines&amp;logoColor=white"></a> <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/integrations/google_cloud/ReadMe.md"><img alt="Google Cloud integration" src="https://img.shields.io/badge/Google_Cloud-11CAE8.svg?logo=GoogleCloud&amp;logoColor=EE0066"></a> <a href="https://raw.githubusercontent.com/seleniumbase/SeleniumBase/master/#utilizing_advanced_features"><img alt="AWS integration" src="https://img.shields.io/badge/AWS-4488DD.svg?logo=AmazonAWS&amp;logoColor=FFFF44"></a> <a href="https://en.wikipedia.org/wiki/Personal_computer" target="_blank"><img alt="Your Computer" src="https://img.shields.io/badge/%F0%9F%92%BB_Your_Computer-44E6E6.svg?sanitize=true"></a></p> <p>✅ SeleniumBase includes an automated/manual hybrid solution called <b><a href="https://github.com/seleniumbase/SeleniumBase/raw/master/examples/master_qa/ReadMe.md">MasterQA</a></b> to speed up manual testing with automation while manual testers handle validation.</p> <p>✅ SeleniumBase supports <a href="https://github.com/seleniumbase/SeleniumBase/tree/master/examples/offline_examples">running tests while offline</a> (<i>assuming webdrivers have previously been downloaded when online</i>).</p> <p>✅ For a full list of SeleniumBase features, <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/help_docs/features_list.md">Click Here</a>.</p> <p><a id="demo_mode_and_debugging"></a></p> <h2><img src="https://seleniumbase.github.io/img/logo7.png" title="SeleniumBase" width="32"> Demo Mode / Debugging:</h2> <p>🔵 <b>Demo Mode</b> helps you see what a test is doing. If a test is moving too fast for your eyes, run it in <b>Demo Mode</b> to pause the browser briefly between actions, highlight page elements being acted on, and display assertions:</p> <pre><code class="language-bash">pytest my_first_test.py --demo </code></pre> <p>🔵 <code>time.sleep(seconds)</code> can be used to make a test wait at a specific spot:</p> <pre><code class="language-python">import time; time.sleep(3) # Do nothing for 3 seconds. </code></pre> <p>🔵 <strong>Debug Mode</strong> with Python's built-in <strong><a href="https://docs.python.org/3/library/pdb.html">pdb</a></strong> library helps you debug tests:</p> <pre><code class="language-python">import pdb; pdb.set_trace() import pytest; pytest.set_trace() breakpoint() # Shortcut for "import pdb; pdb.set_trace()" </code></pre> <blockquote> <p>(<strong><code>pdb</code></strong> commands: <code>n</code>, <code>c</code>, <code>s</code>, <code>u</code>, <code>d</code> =&gt; <code>next</code>, <code>continue</code>, <code>step</code>, <code>up</code>, <code>down</code>)</p> </blockquote> <p>🔵 To pause an active test that throws an exception or error, (<em>and keep the browser window open while <strong>Debug Mode</strong> begins in the console</em>), add <strong><code>--pdb</code></strong> as a <code>pytest</code> option:</p> <pre><code class="language-bash">pytest test_fail.py --pdb </code></pre> <p>🔵 To start tests in Debug Mode, add <strong><code>--trace</code></strong> as a <code>pytest</code> option:</p> <pre><code class="language-bash">pytest test_coffee_cart.py --trace </code></pre> <p><a href="https://github.com/mdmintz/pdbp"><img src="https://seleniumbase.github.io/cdn/gif/coffee_pdbp.gif" alt="SeleniumBase test with the pdbp (Pdb+) debugger" title="SeleniumBase test with the pdbp (Pdb+) debugger"></a></p> <p><a id="command_line_options"></a></p> <h2>🔵 Command-line Options:</h2> <p><a id="pytest_options"></a> ✅ Here are some useful command-line options that come with <code translate="no">pytest</code>:</p> <pre><code class="language-bash">-v # Verbose mode. Prints the full name of each test and shows more details. -q # Quiet mode. Print fewer details in the console output when running tests. -x # Stop running the tests after the first failure is reached. --html=report.html # Creates a detailed pytest-html report after tests finish. --co | --collect-only # Show what tests would get run. (Without running them) --co -q # (Both options together!) - Do a dry run with full test names shown. -n=NUM # Multithread the tests using that many threads. (Speed up test runs!) -s # See print statements. (Should be on by default with pytest.ini present.) --junit-xml=report.xml # Creates a junit-xml report after tests finish. --pdb # If a test fails, enter Post Mortem Debug Mode. (Don't use with CI!) --trace # Enter Debug Mode at the beginning of each test. (Don't use with CI!) -m=MARKER # Run tests with the specified pytest marker. </code></pre> <p><a id="new_pytest_options"></a> ✅ SeleniumBase provides additional <code translate="no">pytest</code> command-line options for tests:</p> <pre><code class="language-bash">--browser=BROWSER # (The web browser to use. Default: "chrome".) --chrome # (Shortcut for "--browser=chrome". On by default.) --edge # (Shortcut for "--browser=edge".) --firefox # (Shortcut for "--browser=firefox".) --safari # (Shortcut for "--browser=safari".) --settings-file=FILE # (Override default SeleniumBase settings.) --env=ENV # (Set the test env. Access with "self.env" in tests.) --account=STR # (Set account. Access with "self.account" in tests.) --data=STRING # (Extra test data. Access with "self.data" in tests.) --var1=STRING # (Extra test data. Access with "self.var1" in tests.) --var2=STRING # (Extra test data. Access with "self.var2" in tests.) --var3=STRING # (Extra test data. Access with "self.var3" in tests.) --variables=DICT # (Extra test data. Access with "self.variables".) --user-data-dir=DIR # (Set the Chrome user data directory to use.) --protocol=PROTOCOL # (The Selenium Grid protocol: http|https.) --server=SERVER # (The Selenium Grid server/IP used for tests.) --port=PORT # (The Selenium Grid port used by the test server.) --cap-file=FILE # (The web browser's desired capabilities to use.) --cap-string=STRING # (The web browser's desired capabilities to use.) --proxy=SERVER:PORT # (Connect to a proxy server:port as tests are running) --proxy=USERNAME:PASSWORD@SERVER:PORT # (Use an authenticated proxy server) --proxy-bypass-list=STRING # (";"-separated hosts to bypass, Eg "*.foo.com") --proxy-pac-url=URL # (Connect to a proxy server using a PAC_URL.pac file.) --proxy-pac-url=USERNAME:PASSWORD@URL # (Authenticated proxy with PAC URL.) --proxy-driver # (If a driver download is needed, will use: --proxy=PROXY.) --multi-proxy # (Allow multiple authenticated proxies when multi-threaded.) --agent=STRING # (Modify the web browser's User-Agent string.) --mobile # (Use the mobile device emulator while running tests.) --metrics=STRING # (Set mobile metrics: "CSSWidth,CSSHeight,PixelRatio".) --chromium-arg="ARG=N,ARG2" # (Set Chromium args, ","-separated, no spaces.) --firefox-arg="ARG=N,ARG2" # (Set Firefox args, comma-separated, no spaces.) --firefox-pref=SET # (Set a Firefox preference:value set, comma-separated.) --extension-zip=ZIP # (Load a Chrome Extension .zip|.crx, comma-separated.) --extension-dir=DIR # (Load a Chrome Extension directory, comma-separated.) --disable-features="F1,F2" # (Disable features, comma-separated, no spaces.) --binary-location=PATH # (Set path of the Chromium browser binary to use.) --driver-version=VER # (Set the chromedriver or uc_driver version to use.) --sjw # (Skip JS Waits for readyState to be "complete" or Angular to load.) --wfa # (Wait for AngularJS to be done loading after specific web actions.) --pls=PLS # (Set pageLoadStrategy on Chrome: "normal", "eager", or "none".) --headless # (The default headless mode. Linux uses this mode by default.) --headless1 # (Use Chrome's old headless mode. Fast, but has limitations.) --headless2 # (Use Chrome's new headless mode, which supports extensions.) --headed # (Run tests in headed/GUI mode on Linux OS, where not default.) --xvfb # (Run tests using the Xvfb virtual display server on Linux OS.) --xvfb-metrics=STRING # (Set Xvfb display size on Linux: "Width,Height".) --locale=LOCALE_CODE # (Set the Language Locale Code for the web browser.) --interval=SECONDS # (The autoplay interval for presentations &amp; tour steps) --start-page=URL # (The starting URL for the web browser when tests begin.) --archive-logs # (Archive existing log files instead of deleting them.) --archive-downloads # (Archive old downloads instead of deleting them.) --time-limit=SECONDS # (Safely fail any test that exceeds the time limit.) --slow # (Slow down the automation. Faster than using Demo Mode.) --demo # (Slow down and visually see test actions as they occur.) --demo-sleep=SECONDS # (Set the wait time after Slow &amp; Demo Mode actions.) --highlights=NUM # (Number of highlight animations for Demo Mode actions.) --message-duration=SECONDS # (The time length for Messenger alerts.) --check-js # (Check for JavaScript errors after page loads.) --ad-block # (Block some types of display ads from loading.) --host-resolver-rules=RULES # (Set host-resolver-rules, comma-separated.) --block-images # (Block images from loading during tests.) --do-not-track # (Indicate to websites that you don't want to be tracked.) --verify-delay=SECONDS # (The delay before MasterQA verification checks.) --ee | --esc-end # (Lets the user end the current test via the ESC key.) --recorder # (Enables the Recorder for turning browser actions into code.) --rec-behave # (Same as Recorder Mode, but also generates behave-gherkin.) --rec-sleep # (If the Recorder is enabled, also records self.sleep calls.) --rec-print # (If the Recorder is enabled, prints output after tests end.) --disable-cookies # (Disable Cookies on websites. Pages might break!) --disable-js # (Disable JavaScript on websites. Pages might break!) --disable-csp # (Disable the Content Security Policy of websites.) --disable-ws # (Disable Web Security on Chromium-based browsers.) --enable-ws # (Enable Web Security on Chromium-based browsers.) --enable-sync # (Enable "Chrome Sync" on websites.) --uc | --undetected # (Use undetected-chromedriver to evade bot-detection.) --uc-cdp-events # (Capture CDP events when running in "--undetected" mode.) --log-cdp # ("goog:loggingPrefs", {"performance": "ALL", "browser": "ALL"}) --remote-debug # (Sync to Chrome Remote Debugger chrome://inspect/#devices) --ftrace | --final-trace # (Debug Mode after each test. Don't use with CI!) --dashboard # (Enable the SeleniumBase Dashboard. Saved at: dashboard.html) --dash-title=STRING # (Set the title shown for the generated dashboard.) --enable-3d-apis # (Enables WebGL and 3D APIs.) --swiftshader # (Chrome "--use-gl=angle" / "--use-angle=swiftshader-webgl") --incognito # (Enable Chrome's Incognito mode.) --guest # (Enable Chrome's Guest mode.) --dark # (Enable Chrome's Dark mode.) --devtools # (Open Chrome's DevTools when the browser opens.) --rs | --reuse-session # (Reuse browser session for all tests.) --rcs | --reuse-class-session # (Reuse session for tests in class.) --crumbs # (Delete all cookies between tests reusing a session.) --disable-beforeunload # (Disable the "beforeunload" event on Chrome.) --window-position=X,Y # (Set the browser's starting window position.) --window-size=WIDTH,HEIGHT # (Set the browser's starting window size.) --maximize # (Start tests with the browser window maximized.) --screenshot # (Save a screenshot at the end of each test.) --no-screenshot # (No screenshots saved unless tests directly ask it.) --visual-baseline # (Set the visual baseline for Visual/Layout tests.) --wire # (Use selenium-wire's webdriver for replacing selenium webdriver.) --external-pdf # (Set Chromium "plugins.always_open_pdf_externally":True.) --timeout-multiplier=MULTIPLIER # (Multiplies the default timeout values.) --list-fail-page # (After each failing test, list the URL of the failure.) </code></pre> <p>(See the full list of command-line option definitions <strong><a href="https://github.com/seleniumbase/SeleniumBase/raw/master/seleniumbase/plugins/pytest_plugin.py">here</a></strong>. For detailed examples of command-line options, see <strong><a href="https://github.com/seleniumbase/SeleniumBase/raw/master/help_docs/customizing_test_runs.md">customizing_test_runs.md</a></strong>)</p> <hr> <p>🔵 During test failures, logs and screenshots from the most recent test run will get saved to the <code>latest_logs/</code> folder. Those logs will get moved to <code>archived_logs/</code> if you add --archive_logs to command-line options, or have <code>ARCHIVE_EXISTING_LOGS</code> set to True in <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/seleniumbase/config/settings.py">settings.py</a>, otherwise log files with be cleaned up at the start of the next test run. The <code>test_suite.py</code> collection contains tests that fail on purpose so that you can see how logging works.</p> <pre><code class="language-bash">cd examples/ pytest test_suite.py --chrome pytest test_suite.py --firefox </code></pre> <p>An easy way to override seleniumbase/config/settings.py is by using a custom settings file. Here's the command-line option to add to tests: (See <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/examples/custom_settings.py">examples/custom_settings.py</a>) <code>--settings_file=custom_settings.py</code> (Settings include default timeout values, a two-factor auth key, DB credentials, S3 credentials, and other important settings used by tests.)</p> <p>🔵 To pass additional data from the command-line to tests, add <code>--data="ANY STRING"</code>. Inside your tests, you can use <code>self.data</code> to access that.</p> <p><a id="directory_configuration"></a></p> <h2><img src="https://seleniumbase.github.io/img/logo7.png" title="SeleniumBase" width="32"> Directory Configuration:</h2> <p>🔵 When running tests with <strong><code>pytest</code></strong>, you'll want a copy of <strong><a href="https://github.com/seleniumbase/SeleniumBase/raw/master/pytest.ini">pytest.ini</a></strong> in your root folders. When running tests with <strong><code>pynose</code></strong>, you'll want a copy of <strong><a href="https://github.com/seleniumbase/SeleniumBase/raw/master/setup.cfg">setup.cfg</a></strong> in your root folders. These files specify default configuration details for tests. Test folders should also include a blank <strong><a href="https://github.com/seleniumbase/SeleniumBase/raw/master/examples/offline_examples/__init__.py"><strong>init</strong>.py</a></strong> file to allow your test files to import other files from that folder.</p> <p>🔵 <code>sbase mkdir DIR</code> creates a folder with config files and sample tests:</p> <pre><code class="language-bash">sbase mkdir ui_tests </code></pre> <blockquote> <p>That new folder will have these files:</p> </blockquote> <pre><code class="language-bash">ui_tests/ ├── __init__.py ├── my_first_test.py ├── parameterized_test.py ├── pytest.ini ├── requirements.txt ├── setup.cfg ├── test_demo_site.py └── boilerplates/ ├── __init__.py ├── base_test_case.py ├── boilerplate_test.py ├── classic_obj_test.py ├── page_objects.py ├── sb_fixture_test.py └── samples/ ├── __init__.py ├── google_objects.py ├── google_test.py ├── sb_swag_test.py └── swag_labs_test.py </code></pre> <p><b>ProTip™:</b> You can also create a boilerplate folder without any sample tests in it by adding <code>-b</code> or <code>--basic</code> to the <code>sbase mkdir</code> command:</p> <pre><code class="language-bash">sbase mkdir ui_tests --basic </code></pre> <blockquote> <p>That new folder will have these files:</p> </blockquote> <pre><code class="language-bash">ui_tests/ ├── __init__.py ├── pytest.ini ├── requirements.txt └── setup.cfg </code></pre> <p>Of those files, the <code>pytest.ini</code> config file is the most important, followed by a blank <code>__init__.py</code> file. There's also a <code>setup.cfg</code> file (for pynose). Finally, the <code>requirements.txt</code> file can be used to help you install seleniumbase into your environments (if it's not already installed).</p> <hr> <h3><img src="https://seleniumbase.github.io/img/logo7.png" title="SeleniumBase" width="32"> Log files from failed tests:</h3> <p>Let's try an example of a test that fails:</p> <pre><code class="language-python">""" test_fail.py """ from seleniumbase import BaseCase BaseCase.main(__name__, __file__) class MyTestClass(BaseCase): def test_find_army_of_robots_on_xkcd_desert_island(self): self.open("https://xkcd.com/731/") self.assert_element("div#ARMY_OF_ROBOTS", timeout=1) # This should fail </code></pre> <p>You can run it from the <code>examples/</code> folder like this:</p> <pre><code class="language-bash">pytest test_fail.py </code></pre> <p>🔵 You'll notice that a logs folder, <code>./latest_logs/</code>, was created to hold information (and screenshots) about the failing test. During test runs, past results get moved to the archived_logs folder if you have ARCHIVE_EXISTING_LOGS set to True in <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/seleniumbase/config/settings.py">settings.py</a>, or if your run tests with <code>--archive-logs</code>. If you choose not to archive existing logs, they will be deleted and replaced by the logs of the latest test run.</p> <hr> <p><a id="seleniumbase_dashboard"></a></p> <h2><img src="https://seleniumbase.github.io/img/logo7.png" title="SeleniumBase" width="32"> SeleniumBase Dashboard:</h2> <p>🔵 The <code>--dashboard</code> option for pytest generates a SeleniumBase Dashboard located at <code>dashboard.html</code>, which updates automatically as tests run and produce results. Example:</p> <pre><code class="language-bash">pytest --dashboard --rs --headless </code></pre> <img src="https://seleniumbase.github.io/cdn/img/dashboard_1.png" alt="The SeleniumBase Dashboard" title="The SeleniumBase Dashboard" width="380"> <p>🔵 Additionally, you can host your own SeleniumBase Dashboard Server on a port of your choice. Here's an example of that using Python's <code>http.server</code>:</p> <pre><code class="language-bash">python -m http.server 1948 </code></pre> <p>🔵 Now you can navigate to <code>http://localhost:1948/dashboard.html</code> in order to view the dashboard as a web app. This requires two different terminal windows: one for running the server, and another for running the tests, which should be run from the same directory. (Use <kbd>Ctrl+C</kbd> to stop the http server.)</p> <p>🔵 Here's a full example of what the SeleniumBase Dashboard may look like:</p> <pre><code class="language-bash">pytest test_suite.py test_image_saving.py --dashboard --rs --headless </code></pre> <img src="https://seleniumbase.github.io/cdn/img/dashboard_2.png" alt="The SeleniumBase Dashboard" title="The SeleniumBase Dashboard" width="520"> <hr> <p><a id="creating_visual_reports"></a></p> <h2><img src="https://seleniumbase.github.io/img/logo7.png" title="SeleniumBase" width="32"> Generating Test Reports:</h2> <h3>🔵 <code>pytest</code> HTML Reports:</h3> <p>✅ Using <code>--html=report.html</code> gives you a fancy report of the name specified after your test suite completes.</p> <pre><code class="language-bash">pytest test_suite.py --html=report.html </code></pre> <img src="https://seleniumbase.github.io/cdn/img/html_report.png" alt="Example Pytest Report" title="Example Pytest Report" width="520"> <p>✅ When combining pytest html reports with SeleniumBase Dashboard usage, the pie chart from the Dashboard will get added to the html report. Additionally, if you set the html report URL to be the same as the Dashboard URL when also using the dashboard, (example: <code>--dashboard --html=dashboard.html</code>), then the Dashboard will become an advanced html report when all the tests complete.</p> <p>✅ Here's an example of an upgraded html report:</p> <pre><code class="language-bash">pytest test_suite.py --dashboard --html=report.html </code></pre> <img src="https://seleniumbase.github.io/cdn/img/dash_report.jpg" alt="Dashboard Pytest HTML Report" title="Dashboard Pytest HTML Report" width="520"> <p>If viewing pytest html reports in <a href="https://www.jenkins.io/">Jenkins</a>, you may need to <a href="https://stackoverflow.com/a/46197356/7058266">configure Jenkins settings</a> for the html to render correctly. This is due to <a href="https://www.jenkins.io/doc/book/system-administration/security/configuring-content-security-policy/">Jenkins CSP changes</a>.</p> <p>You can also use <code>--junit-xml=report.xml</code> to get an xml report instead. Jenkins can use this file to display better reporting for your tests.</p> <pre><code class="language-bash">pytest test_suite.py --junit-xml=report.xml </code></pre> <h3>🔵 <code>pynose</code> Reports:</h3> <p>The <code>--report</code> option gives you a fancy report after your test suite completes.</p> <pre><code class="language-bash">pynose test_suite.py --report </code></pre> <img src="https://seleniumbase.github.io/cdn/img/nose_report.png" alt="Example pynose Report" title="Example pynose Report" width="320"> <p>(NOTE: You can add <code>--show-report</code> to immediately display pynose reports after the test suite completes. Only use <code>--show-report</code> when running tests locally because it pauses the test run.)</p> <h3>🔵 <code>behave</code> Dashboard &amp; Reports:</h3> <p>(The <a href="https://github.com/seleniumbase/SeleniumBase/tree/master/examples/behave_bdd">behave_bdd/</a> folder can be found in the <a href="https://github.com/seleniumbase/SeleniumBase/tree/master/examples">examples/</a> folder.)</p> <pre><code class="language-bash">behave behave_bdd/features/ -D dashboard -D headless </code></pre> <img src="https://seleniumbase.github.io/cdn/img/sb_behave_dashboard.png" title="SeleniumBase" width="520"> <p>You can also use <code>--junit</code> to get <code>.xml</code> reports for each <code translate="no">behave</code> feature. Jenkins can use these files to display better reporting for your tests.</p> <pre><code class="language-bash">behave behave_bdd/features/ --junit -D rs -D headless </code></pre> <h3>🔵 Allure Reports:</h3> <p>See: <a href="https://allurereport.org/docs/pytest/">https://allurereport.org/docs/pytest/</a></p> <p>SeleniumBase no longer includes <code>allure-pytest</code> as part of installed dependencies. If you want to use it, install it first:</p> <pre><code class="language-bash">pip install allure-pytest </code></pre> <p>Now your tests can create Allure results files, which can be processed by Allure Reports.</p> <pre><code class="language-bash">pytest test_suite.py --alluredir=allure_results </code></pre> <hr> <h3><img src="https://seleniumbase.github.io/img/logo7.png" title="SeleniumBase" width="32"> Using a Proxy Server:</h3> <p>If you wish to use a proxy server for your browser tests (Chromium or Firefox), you can add <code>--proxy=IP_ADDRESS:PORT</code> as an argument on the command line.</p> <pre><code class="language-bash">pytest proxy_test.py --proxy=IP_ADDRESS:PORT </code></pre> <p>If the proxy server that you wish to use requires authentication, you can do the following (Chromium only):</p> <pre><code class="language-bash">pytest proxy_test.py --proxy=USERNAME:PASSWORD@IP_ADDRESS:PORT </code></pre> <p>SeleniumBase also supports SOCKS4 and SOCKS5 proxies:</p> <pre><code class="language-bash">pytest proxy_test.py --proxy="socks4://IP_ADDRESS:PORT" pytest proxy_test.py --proxy="socks5://IP_ADDRESS:PORT" </code></pre> <p>To make things easier, you can add your frequently-used proxies to PROXY_LIST in <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/seleniumbase/config/proxy_list.py">proxy_list.py</a>, and then use <code>--proxy=KEY_FROM_PROXY_LIST</code> to use the IP_ADDRESS:PORT of that key.</p> <pre><code class="language-bash">pytest proxy_test.py --proxy=proxy1 </code></pre> <h3><img src="https://seleniumbase.github.io/img/logo7.png" title="SeleniumBase" width="32"> Changing the User-Agent:</h3> <p>🔵 If you wish to change the User-Agent for your browser tests (Chromium and Firefox only), you can add <code>--agent="USER AGENT STRING"</code> as an argument on the command-line.</p> <pre><code class="language-bash">pytest user_agent_test.py --agent="Mozilla/5.0 (Nintendo 3DS; U; ; en) Version/1.7412.EU" </code></pre> <h3><img src="https://seleniumbase.github.io/img/logo7.png" title="SeleniumBase" width="32"> Handling Pop-Up Alerts:</h3> <p>🔵 <code translate="no">self.accept_alert()</code> automatically waits for and accepts alert pop-ups. <code translate="no">self.dismiss_alert()</code> automatically waits for and dismisses alert pop-ups. On occasion, some methods like <code translate="no">self.click(SELECTOR)</code> might dismiss a pop-up on its own because they call JavaScript to make sure that the <code translate="no">readyState</code> of the page is <code translate="no">complete</code> before advancing. If you're trying to accept a pop-up that got dismissed this way, use this workaround: Call <code translate="no">self.find_element(SELECTOR).click()</code> instead, (which will let the pop-up remain on the screen), and then use <code translate="no">self.accept_alert()</code> to accept the pop-up (<a href="https://github.com/seleniumbase/SeleniumBase/issues/600#issuecomment-647270426">more on that here</a>). If pop-ups are intermittent, wrap code in a try/except block.</p> <h3><img src="https://seleniumbase.github.io/img/logo7.png" title="SeleniumBase" width="32"> Building Guided Tours for Websites:</h3> <p>🔵 Learn about <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/examples/tour_examples/ReadMe.md">SeleniumBase Interactive Walkthroughs</a> (in the <code>examples/tour_examples/</code> folder). It's great for prototyping a website onboarding experience.</p> <p><a id="utilizing_advanced_features"></a></p> <hr> <div></div> <h3><img src="https://seleniumbase.github.io/img/logo7.png" title="SeleniumBase" width="32"> Production Environments &amp; Integrations:</h3> <div></div> <details> <summary> ▶️ Here are some things you can do to set up a production environment for your testing. (<b>click to expand</b>)</summary> <ul> <li>You can set up a <a href="https://jenkins.io/" target="_blank">Jenkins</a> build server for running tests at regular intervals. For a real-world Jenkins example of headless browser automation in action, check out the <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/integrations/azure/jenkins/ReadMe.md">SeleniumBase Jenkins example on Azure</a> or the <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/integrations/google_cloud/ReadMe.md">SeleniumBase Jenkins example on Google Cloud</a>.</li> <li>You can use <a href="https://selenium.dev/documentation/en/grid/" target="_blank">the Selenium Grid</a> to scale your testing by distributing tests on several machines with parallel execution. To do this, check out the <a href="https://github.com/seleniumbase/SeleniumBase/tree/master/seleniumbase/utilities/selenium_grid">SeleniumBase selenium_grid folder</a>, which should have everything you need, including the <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/seleniumbase/utilities/selenium_grid/ReadMe.md">Selenium Grid ReadMe</a> to help you get started.</li> <li>If you're using the <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/help_docs/mysql_installation.md">SeleniumBase MySQL feature</a> to save results from tests running on a server machine, you can install <a href="https://dev.mysql.com/downloads/tools/workbench/">MySQL Workbench</a> to help you read &amp; write from your DB more easily.</li> <li>If you're using AWS, you can set up an <a href="https://aws.amazon.com/s3/" target="_blank">Amazon S3</a> account for saving log files and screenshots from your tests. To activate this feature, modify <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/seleniumbase/config/settings.py">settings.py</a> with connection details in the S3 section, and add <code translate="no">--with-s3-logging</code> on the command-line when running your tests.</li> </ul> <p>Here's an example of running tests with some additional features enabled:</p> <pre><code class="language-bash">pytest [YOUR_TEST_FILE.py] --with-db-reporting --with-s3-logging </code></pre> </details> <p><a id="detailed_method_specifications"></a></p> <h3><img src="https://seleniumbase.github.io/img/logo7.png" title="SeleniumBase" width="32"> Detailed Method Specifications and Examples:</h3> <p>🔵 <strong>Navigating to a web page: (and related commands)</strong></p> <pre><code class="language-python">self.open("https://xkcd.com/378/") # This method opens the specified page. self.go_back() # This method navigates the browser to the previous page. self.go_forward() # This method navigates the browser forward in history. self.refresh_page() # This method reloads the current page. self.get_current_url() # This method returns the current page URL. self.get_page_source() # This method returns the current page source. </code></pre> <p><b>ProTip™:</b> You can use the <code translate="no">self.get_page_source()</code> method with Python's <code translate="no">find()</code> command to parse through HTML to find something specific. (For more advanced parsing, see the <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/examples/test_parse_soup.py">BeautifulSoup example</a>.)</p> <pre><code class="language-python">source = self.get_page_source() head_open_tag = source.find('&lt;head&gt;') head_close_tag = source.find('&lt;/head&gt;', head_open_tag) everything_inside_head = source[head_open_tag+len('&lt;head&gt;'):head_close_tag] </code></pre> <p>🔵 <strong>Clicking:</strong></p> <p>To click an element on the page:</p> <pre><code class="language-python">self.click("div#my_id") </code></pre> <p><strong>ProTip™:</strong> In most web browsers, you can right-click on a page and select <code>Inspect Element</code> to see the CSS selector details that you'll need to create your own scripts.</p> <p>🔵 <strong>Typing Text:</strong></p> <p><code translate="no">self.type(selector, text)</code> # updates the text from the specified element with the specified value. An exception is raised if the element is missing or if the text field is not editable. Example:</p> <pre><code class="language-python">self.type("input#id_value", "2012") </code></pre> <p>You can also use <code translate="no">self.add_text()</code> or the <a href="https://www.selenium.dev/documentation/webdriver/" target="_blank">WebDriver</a> <code translate="no">.send_keys()</code> command, but those won't clear the text box first if there's already text inside.</p> <p>🔵 <strong>Getting the text from an element on a page:</strong></p> <pre><code class="language-python">text = self.get_text("header h2") </code></pre> <p>🔵 <strong>Getting the attribute value from an element on a page:</strong></p> <pre><code class="language-python">attribute = self.get_attribute("#comic img", "title") </code></pre> <p>🔵 <strong>Asserting existence of an element on a page within some number of seconds:</strong></p> <pre><code class="language-python">self.wait_for_element_present("div.my_class", timeout=10) </code></pre> <p>(NOTE: You can also use: <code>self.assert_element_present(ELEMENT)</code>)</p> <p>🔵 <strong>Asserting visibility of an element on a page within some number of seconds:</strong></p> <pre><code class="language-python">self.wait_for_element_visible("a.my_class", timeout=5) </code></pre> <p>(NOTE: The short versions of that are <code>self.find_element(ELEMENT)</code> and <code>self.assert_element(ELEMENT)</code>. The <code>find_element()</code> version returns the element.)</p> <p>Since the line above returns the element, you can combine that with <code>.click()</code> as shown below:</p> <pre><code class="language-python">self.find_element("a.my_class", timeout=5).click() # But you're better off using the following statement, which does the same thing: self.click("a.my_class") # DO IT THIS WAY! </code></pre> <p><strong>ProTip™:</strong> You can use dots to signify class names (Ex: <code>div.class_name</code>) as a simplified version of <code>div[class="class_name"]</code> within a CSS selector.</p> <p>You can also use <code>*=</code> to search for any partial value in a CSS selector as shown below:</p> <pre><code class="language-python">self.click('a[name*="partial_name"]') </code></pre> <p>🔵 <strong>Asserting visibility of text inside an element on a page within some number of seconds:</strong></p> <pre><code class="language-python">self.assert_text("Make it so!", "div#trek div.picard div.quotes") self.assert_text("Tea. Earl Grey. Hot.", "div#trek div.picard div.quotes", timeout=3) </code></pre> <p>(NOTE: <code>self.find_text(TEXT, ELEMENT)</code> and <code>self.wait_for_text(TEXT, ELEMENT)</code> also do this. For backwards compatibility, older method names were kept, but the default timeout may be different.)</p> <p>🔵 <strong>Asserting Anything:</strong></p> <pre><code class="language-python">self.assert_true(var1 == var2) self.assert_false(var1 == var2) self.assert_equal(var1, var2) </code></pre> <p>🔵 <strong>Useful Conditional Statements: (with creative examples)</strong></p> <p>❓ <code>is_element_visible(selector):</code> (visible on the page)</p> <pre><code class="language-python">if self.is_element_visible('div#warning'): print("Red Alert: Something bad might be happening!") </code></pre> <p>❓ <code>is_element_present(selector):</code> (present in the HTML)</p> <pre><code class="language-python">if self.is_element_present('div#top_secret img.tracking_cookie'): self.contact_cookie_monster() # Not a real SeleniumBase method else: current_url = self.get_current_url() self.contact_the_nsa(url=current_url, message="Dark Zone Found") # Not a real SeleniumBase method </code></pre> <pre><code class="language-python">def is_there_a_cloaked_klingon_ship_on_this_page(): if self.is_element_present("div.ships div.klingon"): return not self.is_element_visible("div.ships div.klingon") return False </code></pre> <p>❓ <code>is_text_visible(text, selector):</code> (text visible on element)</p> <pre><code class="language-python">if self.is_text_visible("You Shall Not Pass!", "h1"): self.open("https://www.youtube.com/watch?v=3xYXUeSmb-Y") </code></pre> <div></div> <details> <summary> ▶️ Click for a longer example of <code translate="no">is_text_visible():</code></summary> <pre><code class="language-python">def get_mirror_universe_captain_picard_superbowl_ad(superbowl_year): selector = "div.superbowl_%s div.commercials div.transcript div.picard" % superbowl_year if self.is_text_visible("Yes, it was I who summoned you all here.", selector): return "Picard Paramount+ Superbowl Ad 2020" elif self.is_text_visible("Commander, signal the following: Our Network is Secure!"): return "Picard Mirror Universe iboss Superbowl Ad 2018" elif self.is_text_visible("For the Love of Marketing and Earl Grey Tea!", selector): return "Picard Mirror Universe HubSpot Superbowl Ad 2015" elif self.is_text_visible("Delivery Drones... Engage", selector): return "Picard Mirror Universe Amazon Superbowl Ad 2015" elif self.is_text_visible("Bing it on Screen!", selector): return "Picard Mirror Universe Microsoft Superbowl Ad 2015" elif self.is_text_visible("OK Glass, Make it So!", selector): return "Picard Mirror Universe Google Superbowl Ad 2015" elif self.is_text_visible("Number One, I've Never Seen Anything Like It.", selector): return "Picard Mirror Universe Tesla Superbowl Ad 2015" elif self.is_text_visible("Let us make sure history never forgets the name ... Facebook", selector): return "Picard Mirror Universe Facebook Superbowl Ad 2015" elif self.is_text_visible("""With the first link, the chain is forged. The first speech censored, the first thought forbidden, the first freedom denied, chains us all irrevocably.""", selector): return "Picard Mirror Universe Wikimedia Superbowl Ad 2015" else: raise Exception("Reports of my assimilation are greatly exaggerated.") </code></pre> </details> <p>❓ <code>is_link_text_visible(link_text):</code></p> <pre><code class="language-python">if self.is_link_text_visible("Stop! Hammer time!"): self.click_link("Stop! Hammer time!") </code></pre> <h3>🔵 Switching Tabs:</h3> <p>If your test opens up a new tab/window, you can switch to it. (SeleniumBase automatically switches to new tabs that don't open to <code translate="no">about:blank</code> URLs.)</p> <pre><code class="language-python">self.switch_to_window(1) # This switches to the new tab (0 is the first one) </code></pre> <h3>🔵 How to handle iframes:</h3> <p>🔵 <b>iframes</b> follow the same principle as new windows: You must first switch to the iframe if you want to perform actions in there:</p> <pre><code class="language-python">self.switch_to_frame("iframe") # ... Now perform actions inside the iframe self.switch_to_parent_frame() # Exit the current iframe </code></pre> <p>To exit from multiple iframes, use <code>self.switch_to_default_content()</code>. (If inside a single iframe, this has the same effect as <code>self.switch_to_parent_frame()</code>.)</p> <pre><code class="language-python">self.switch_to_frame('iframe[name="frame1"]') self.switch_to_frame('iframe[name="frame2"]') # ... Now perform actions inside the inner iframe self.switch_to_default_content() # Back to the main page </code></pre> <p>🔵 You can also use a context manager to act inside iframes:</p> <pre><code class="language-python">with self.frame_switch("iframe"): # ... Now perform actions while inside the code block # You have left the iframe </code></pre> <p>This also works with nested iframes:</p> <pre><code class="language-python">with self.frame_switch('iframe[name="frame1"]'): with self.frame_switch('iframe[name="frame2"]'): # ... Now perform actions while inside the code block # You are now back inside the first iframe # You have left all the iframes </code></pre> <h3>🔵 How to execute custom jQuery scripts:</h3> <p>jQuery is a powerful JavaScript library that allows you to perform advanced actions in a web browser. If the web page you're on already has jQuery loaded, you can start executing jQuery scripts immediately. You'd know this because the web page would contain something like the following in the HTML:</p> <pre><code class="language-html">&lt;script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.3/jquery.min.js"&gt;&lt;/script&gt; </code></pre> <p>🔵 It's OK if you want to use jQuery on a page that doesn't have it loaded yet. To do so, run the following command first:</p> <pre><code class="language-python">self.activate_jquery() </code></pre> <div></div> <details> <summary> ▶️ Here are some examples of using jQuery in your scripts. (<b>click to expand</b>)</summary> <pre><code class="language-python">self.execute_script("jQuery, window.scrollTo(0, 600)") # Scrolling the page self.execute_script("jQuery('#annoying-widget').hide()") # Hiding elements on a page self.execute_script("jQuery('#hidden-widget').show(0)") # Showing hidden elements on a page self.execute_script("jQuery('#annoying-button a').remove()") # Removing elements on a page self.execute_script("jQuery('%s').mouseover()" % (mouse_over_item)) # Mouse-over elements on a page self.execute_script("jQuery('input#the_id').val('my_text')") # Fast text input on a page self.execute_script("jQuery('div#dropdown a.link').click()") # Click elements on a page self.execute_script("return jQuery('div#amazing')[0].text") # Returns the css "text" of the element given self.execute_script("return jQuery('textarea')[2].value") # Returns the css "value" of the 3rd textarea element on the page </code></pre> <p>(Most of the above commands can be done directly with built-in SeleniumBase methods.)</p> </details> <h3>🔵 How to handle a restrictive CSP:</h3> <p>❗ Some websites have a restrictive <a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP">Content Security Policy</a> to prevent users from loading jQuery and other external libraries onto their websites. If you need to use jQuery or another JS library on those websites, add <code>--disable-csp</code> as a <code>pytest</code> command-line option to load a Chromium extension that bypasses the CSP.</p> <h3>🔵 More JavaScript fun:</h3> <div></div> <details> <summary> ▶️ In this example, JavaScript creates a referral button on a page, which is then clicked. (<b>click to expand</b>)</summary> <pre><code class="language-python">start_page = "https://xkcd.com/465/" destination_page = "https://github.com/seleniumbase/SeleniumBase" self.open(start_page) referral_link = '''&lt;a class='analytics test' href='%s'&gt;Free-Referral Button!&lt;/a&gt;''' % destination_page self.execute_script('''document.body.innerHTML = \"%s\"''' % referral_link) self.click("a.analytics") # Clicks the generated button </code></pre> <p>(Due to popular demand, this traffic generation example has been included in SeleniumBase with the <code translate="no">self.generate_referral(start_page, end_page)</code> and the <code translate="no">self.generate_traffic(start_page, end_page, loops)</code> methods.)</p> </details> <h3>🔵 How to use deferred asserts:</h3> <p>Let's say you want to verify multiple different elements on a web page in a single test, but you don't want the test to fail until you verified several elements at once so that you don't have to rerun the test to find more missing elements on the same page. That's where deferred asserts come in. Here's an example:</p> <pre><code class="language-python">from seleniumbase import BaseCase BaseCase.main(__name__, __file__) class DeferredAssertTests(BaseCase): def test_deferred_asserts(self): self.open("https://xkcd.com/993/") self.wait_for_element("#comic") self.deferred_assert_element('img[alt="Brand Identity"]') self.deferred_assert_element('img[alt="Rocket Ship"]') # Will Fail self.deferred_assert_element("#comicmap") self.deferred_assert_text("Fake Item", "ul.comicNav") # Will Fail self.deferred_assert_text("Random", "ul.comicNav") self.deferred_assert_element('a[name="Super Fake !!!"]') # Will Fail self.deferred_assert_exact_text("Brand Identity", "#ctitle") self.deferred_assert_exact_text("Fake Food", "#comic") # Will Fail self.process_deferred_asserts() </code></pre> <p><code translate="no">deferred_assert_element()</code> and <code translate="no">deferred_assert_text()</code> will save any exceptions that would be raised. To flush out all the failed deferred asserts into a single exception, make sure to call <code translate="no">self.process_deferred_asserts()</code> at the end of your test method. If your test hits multiple pages, you can call <code translate="no">self.process_deferred_asserts()</code> before navigating to a new page so that the screenshot from your log files matches the URL where the deferred asserts were made.</p> <h3>🔵 How to access raw <a href="https://www.selenium.dev/documentation/webdriver/" target="_blank">WebDriver</a>:</h3> <p>If you need access to any commands that come with standard <a href="https://www.selenium.dev/documentation/webdriver/" target="_blank">WebDriver</a>, you can call them directly like this:</p> <pre><code class="language-python">self.driver.delete_all_cookies() capabilities = self.driver.capabilities self.driver.find_elements("partial link text", "GitHub") </code></pre> <p>(In general, you'll want to use the SeleniumBase versions of methods when available.)</p> <h3>🔵 How to retry failing tests automatically:</h3> <p>You can use <code translate="no">pytest --reruns=NUM</code> to retry failing tests that many times. Add <code translate="no">--reruns-delay=SECONDS</code> to wait that many seconds between retries. Example:</p> <pre><code class="language-bash">pytest --reruns=1 --reruns-delay=1 </code></pre> <p>You can use the <code translate="no">@retry_on_exception()</code> decorator to retry failing methods. (First import: <code translate="no">from seleniumbase import decorators</code>). To learn more about SeleniumBase decorators, <a href="https://github.com/seleniumbase/SeleniumBase/tree/master/seleniumbase/common">click here</a>.</p> <hr> <blockquote> <p>"Catch bugs in QA before deploying code to Production!"</p> </blockquote> <p align="left"><a href="https://seleniumbase.io/error_page" target="_blank"><img src="https://seleniumbase.github.io/cdn/gif/error_page.gif" alt="Catch bugs in QA before deploying code to Production!" title="Catch bugs in QA before deploying code to Production!"></a></p> <hr> <h3><img src="https://seleniumbase.github.io/img/logo7.png" title="SeleniumBase" width="32"> Wrap-Up</h3> <p> </p> <div> <b>If you see something, say something!</b> </div> <div> <a href="https://github.com/seleniumbase/SeleniumBase/issues?q=is%3Aissue+is%3Aclosed"><img src="https://img.shields.io/github/issues-closed-raw/seleniumbase/SeleniumBase.svg?color=22BB88" title="Closed Issues"></a> <a href="https://github.com/seleniumbase/SeleniumBase/pulls?q=is%3Apr+is%3Aclosed"><img src="https://img.shields.io/github/issues-pr-closed/seleniumbase/SeleniumBase.svg?logo=github&amp;logoColor=white&amp;color=22BB99" title="Closed Pull Requests"></a> </div> <p></p> <p align="left"><a href="https://github.com/seleniumbase/SeleniumBase/"><img src="https://seleniumbase.github.io/cdn/img/sb_logo_10t.png" alt="SeleniumBase" title="SeleniumBase" width="274"></a></p> <p><a href="https://pypi.org/project/seleniumbase/" target="_blank"><img src="https://img.shields.io/pypi/pyversions/seleniumbase.svg?color=22AAEE&amp;logo=python&amp;logoColor=FEDC54" title="Supported Python Versions"></a></p> <p></p> <div> <span><a href="https://www.youtube.com/playlist?list=PLp9uKicxkBc5UIlGi2BuE3aWC7JyXpD3m"><img src="https://seleniumbase.github.io/cdn/img/youtube.png" title="SeleniumBase Playlist on YouTube" alt="SeleniumBase Playlist on YouTube" width="70"></a></span> <span><a href="https://github.com/seleniumbase/SeleniumBase"><img src="https://seleniumbase.github.io/img/social/share_github.svg?sanitize=true" title="SeleniumBase on GitHub" alt="SeleniumBase on GitHub" width="64"></a></span> <span><a href="https://discord.gg/EdhQTn3EyE"><img src="https://seleniumbase.github.io/other/discord_icon.png" title="SeleniumBase on Discord" alt="SeleniumBase on Discord" width="66"></a></span> <span><a href="https://www.facebook.com/SeleniumBase"><img src="https://seleniumbase.io/img/social/share_facebook.svg?sanitize=true" title="SeleniumBase on Facebook" alt="SeleniumBase on Facebook" width="62"></a></span> </div> <p></p> <p></p> <div> <b><a href="https://github.com/mdmintz">https://github.com/mdmintz</a></b> </div> <p></p> <div> <a href="https://github.com/seleniumbase/SeleniumBase/"><img src="https://seleniumbase.github.io/cdn/img/super_logo_sb3.png" title="SeleniumBase" width="274"></a> </div> <div> <a href="https://seleniumbase.io"><img src="https://img.shields.io/badge/docs-seleniumbase.io-11BBAA.svg?sanitize=true" alt="SeleniumBase Docs"></a> <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/LICENSE"><img src="https://img.shields.io/badge/license-MIT-22BBCC.svg?sanitize=true" title="SeleniumBase"></a> </div> <div> <a href="https://github.com/seleniumbase/SeleniumBase"><img src="https://img.shields.io/badge/tested%20with-SeleniumBase-04C38E.svg?sanitize=true" alt="Tested with SeleniumBase"></a> <a href="https://github.com/seleniumbase/SeleniumBase/stargazers"><img src="https://img.shields.io/github/stars/seleniumbase/seleniumbase.svg?color=19A57B" title="Stargazers"></a> </div> <div> <a href="https://hellogithub.com/repository/c6be2d0f1969448697683d11a4ff915e" target="_blank"><img src="https://abroad.hellogithub.com/v1/widgets/recommend.svg?rid=c6be2d0f1969448697683d11a4ff915e&amp;claim_uid=xcrm4p9j3d6JCO5&amp;theme=small" alt="Featured|HelloGitHub"></a> <a href="https://discord.gg/EdhQTn3EyE" target="_blank"><img src="https://img.shields.io/badge/join-discord-infomational" alt="Join the SeleniumBase chat on Discord"></a> <a href="https://gitter.im/seleniumbase/SeleniumBase" target="_blank"><img src="https://img.shields.io/gitter/room/seleniumbase/SeleniumBase.svg?sanitize=true" alt="Gitter chat"></a> </div> <div> <a href="https://pepy.tech/project/seleniumbase" target="_blank"><img src="https://static.pepy.tech/badge/seleniumbase" alt="SeleniumBase PyPI downloads"></a> <img src="https://views.whatilearened.today/views/github/seleniumbase/SeleniumBase.svg?sanitize=true" width="98px" height="20px" alt="Views"> </div> <div align="left"></div> + mui/base-ui + 2024-12-20T01:28:29Z + tag:github.com,2024-12-20:/mui/base-ui + + <p>Base UI is an open-source library of accessible, unstyled UI components for React.</p><hr><h1>Base&nbsp;UI</h1> <p>From the creators of Radix, Floating UI, and Material&nbsp;UI, Base&nbsp;UI is an unstyled UI component library for building accessible user interfaces.</p> <hr> <h2>Documentation</h2> <p>To get started, check out the <a href="https://base-ui.com/react/overview/quick-start">Base&nbsp;UI documentation</a>.</p> <h2>Contributing</h2> <p>Read our <a href="https://raw.githubusercontent.com/mui/base-ui/master/CONTRIBUTING.md">contributing guide</a> to learn about our development process, how to propose bug fixes and improvements, and how to build and test your changes.</p> <h2>Releases</h2> <p>To see the latest updates, check out the <a href="https://base-ui.com/react/overview/releases">releases</a>.</p> <h2>Community</h2> <ul> <li><strong>Discord</strong> For community support, questions, and tips, join our <a href="https://discord.gg/g6C3hUtuxz">Discord</a>.</li> <li><strong>X</strong> To stay up-to-date on new releases and announcements follow <a href="https://x.com/base_ui">Base&nbsp;UI on X</a>.</li> <li><strong>Bluesky</strong> We're also on <a href="https://bsky.app/profile/base-ui.com">Bluesky</a>.</li> </ul> <h2>Team</h2> <ul> <li>Michał Dudak <a href="https://x.com/michaldudak">@michaldudak</a></li> <li>James Nelson <a href="https://x.com/atomiksdev">@atomiksdev</a></li> <li>Albert Yu <a href="https://github.com/mj12albert">@mj12albert</a></li> <li>Colm Tuite <a href="https://x.com/colmtuite">@colmtuite</a></li> <li>Marija Najdova <a href="https://x.com/marijanajdova">@marijanajdova</a></li> <li>Vlad Moroz <a href="https://x.com/vladyslavmoroz">@vladyslavmoroz</a></li> </ul> <h2>License</h2> <p>This project is licensed under the terms of the <a href="https://raw.githubusercontent.com/mui/base-ui/master/LICENSE">MIT license</a>.</p> - luckjiawei/frpc-desktop - 2024-12-19T01:28:39Z - tag:github.com,2024-12-19:/luckjiawei/frpc-desktop - - <p>frp跨平台桌面客户端,可视化配置,轻松实现内网穿透! 支持所有frp版本</p><hr><p><a name="readme-top"></a></p> <!-- PROJECT SHIELDS --> <p><a href="https://github.com/luckjiawei/frpc-desktop/network/members"><img src="https://img.shields.io/github/forks/luckjiawei/frpc-desktop.svg?style=for-the-badge" alt="Forks"></a> <a href="https://github.com/luckjiawei/frpc-desktop/stargazers"><img src="https://img.shields.io/github/stars/luckjiawei/frpc-desktop.svg?style=for-the-badge" alt="Stargazers"></a> <a href="https://github.com/luckjiawei/frpc-desktop/issues"><img src="https://img.shields.io/github/issues/luckjiawei/frpc-desktop.svg?style=for-the-badge" alt="Issues"></a> <a href="https://github.com/luckjiawei/frpc-desktop/raw/master/LICENSE"><img src="https://img.shields.io/github/license/luckjiawei/frpc-desktop.svg?style=for-the-badge" alt="MIT License"></a></p> <!-- PROJECT LOGO --> <br> <div align="center"> <a href="https://github.com/luckjiawei/frpc-desktop"> <img src="https://raw.githubusercontent.com/luckjiawei/frpc-desktop/main/public/logo/pack/1024x1024.png" alt="Logo" width="140"> </a> <h3 align="center">Frpc-Desktop</h3> <p align="center"> 🎉 FRP跨平台桌面客户端,可视化配置,轻松实现内网穿透! <br> 支持所有frp版本 / 开机自启 / 可视化配置 / 免费开源 </p> <p><a href="https://jwinks.com/p/frp/#frp%E6%98%AF%E4%BB%80%E4%B9%88">使用教程</a></p> <p><a href="https://hellogithub.com/repository/b0dc116e9f2e4b8188da5a6d3e1bd8a4" target="_blank"><img src="https://abroad.hellogithub.com/v1/widgets/recommend.svg?rid=b0dc116e9f2e4b8188da5a6d3e1bd8a4&amp;claim_uid=8ZMOhz30mGJAHpa" alt="Featured|HelloGitHub" style="width: 250px; height: 54px;" width="250" height="54"></a></p> </div> <h2>TODO</h2> <ul> <li><input type="checkbox" checked disabled> 开机自启动</li> <li><input type="checkbox" checked disabled> 适配多用户 user &amp; meta_token</li> <li><input type="checkbox" checked disabled> 便携版</li> <li><input type="checkbox" checked disabled> 增加udp代理类型</li> <li><input type="checkbox" checked disabled> 支持快速分享frps</li> <li><input type="checkbox" checked disabled> 增加快速选择本地端口</li> <li><input type="checkbox" checked disabled> 支持stcp代理类型</li> <li><input type="checkbox" checked disabled> 通过镜像站下载frp</li> <li><input type="checkbox" checked disabled> 支持所有配置的导入导出</li> <li><input type="checkbox" checked disabled> 一键清空所有配置</li> <li><input type="checkbox" checked disabled> 支持导入识别frpc.toml</li> <li><input type="checkbox" checked disabled> tcp、udp协议支持批量端口</li> </ul> <h2>常见问题</h2> <h3>Mac提示已损坏</h3> <p>执行命令:<code>sudo xattr -cr Frpc-Desktop.app</code></p> <h2>里程碑</h2> <ul> <li>2024-12-04: 发布v1.1.5版本 优化体验、支持修改webport、解决github限流问题、日志优化</li> <li>2024-11-08: 发布v1.1.4版本 修复已知BUG</li> <li>2024-10-14: 发布v1.1.3版本 支持xtcp协议、优化体验</li> <li>2024-09-25: 发布v1.1.2版本 支持 http basic、子域名</li> <li>2024-09-07: 发布v1.1.0版本 支持批量端口、支持单条代理开关控制</li> <li>2024-08-24: 发布v1.0.9版本 支持镜像下载、导出导入配置</li> <li>2024-08-17: 发布v1.0.8版本 支持stcp代理</li> <li>2024-08-11: 发布v1.0.7版本</li> <li>2024-08-09: 发布v1.0.6版本</li> <li>2024-08-06: 发布v1.0.5版本</li> <li>2024-08-06: 发布v1.0.4版本 适配支持多用户插件</li> <li>2024-07-17: 发布v1.0.3版本 修复已知bug 增加开机自启 增加删除frp版本</li> <li>2024-01-29: 发布v1.0.2版本 增加Linux客户端和代理模式</li> <li>2023-12-01: 发布v1.0.1版本</li> <li>2023-11-28: 发布v1.0版本</li> </ul> <h2>社区</h2> <p><del>微信扫描加入开源项目交流群 广告勿进!!!</del></p> <img src="https://raw.githubusercontent.com/luckjiawei/frpc-desktop/main/screenshots/wechat-qr.png" alt="二维码" width="200"> <p>**微信群超过200人无法扫码进群 关注公众号进群 **</p> <img src="https://raw.githubusercontent.com/luckjiawei/frpc-desktop/main/screenshots/mp_qr.jpg" alt="公众号二维码" width="200"> <h2>演示</h2> <p><img src="https://github.com/luckjiawei/frpc-desktop/raw/main/screenshots/conn.png?raw=true" alt="connect server"></p> <p><img src="https://github.com/luckjiawei/frpc-desktop/raw/main/screenshots/proxys.png?raw=true" alt="proxys manager"></p> <p><img src="https://github.com/luckjiawei/frpc-desktop/raw/main/screenshots/versions.png?raw=true" alt="frp download"></p> <p><img src="https://github.com/luckjiawei/frpc-desktop/raw/main/screenshots/config.png?raw=true" alt="config"></p> <p><img src="https://github.com/luckjiawei/frpc-desktop/raw/main/screenshots/log.png?raw=true" alt="log"></p> <p><img src="https://github.com/luckjiawei/frpc-desktop/raw/main/screenshots/about.png?raw=true" alt="about"></p> <h2>捐赠</h2> <p><strong>捐赠方式</strong></p> <p>一块两块不嫌少,十块二十那更好。</p> <p>👉👉👉<a href="https://jwinks.com/donate/">点击去捐赠</a>👈👈👈</p> <p><strong>捐赠名单</strong></p> <table> <thead> <tr> <th>🕰 时间</th> <th>📡 平台</th> <th>🤲 捐赠者</th> <th>💰 金额</th> <th>✉️ 捐赠留言</th> </tr> </thead> <tbody> <tr> <td>2024-08-06</td> <td>微信</td> <td>三木</td> <td>1 元</td> <td>无</td> </tr> <tr> <td>2024-08-25</td> <td>微信</td> <td>晚风</td> <td>1 元</td> <td>无</td> </tr> <tr> <td>2024-08-27</td> <td>微信</td> <td>x</td> <td>1 元</td> <td>无</td> </tr> <tr> <td>2024-10-09</td> <td>微信</td> <td>解脱</td> <td>20 元</td> <td>无</td> </tr> <tr> <td>2024-10-09</td> <td>微信</td> <td>KMDN</td> <td>20 元</td> <td>无</td> </tr> <tr> <td>2024-10-14</td> <td>微信</td> <td>121</td> <td>5 元</td> <td>无</td> </tr> <tr> <td>2024-10-14</td> <td>微信</td> <td>Different</td> <td>10 元</td> <td>感谢您的开源</td> </tr> <tr> <td>2024-10-16</td> <td>微信</td> <td>。 。 。</td> <td>50 元</td> <td>感谢开源的frp软件</td> </tr> <tr> <td>2024-11-2</td> <td>微信</td> <td>gesoft</td> <td>10 元</td> <td>加油</td> </tr> <tr> <td>2024-11-7</td> <td>微信</td> <td>*进</td> <td>10 元</td> <td>谢谢,可见可得,省心省力</td> </tr> <tr> <td>2024-11-8</td> <td>微信</td> <td>**创</td> <td>10 元</td> <td>无</td> </tr> <tr> <td>2024-11-20</td> <td>微信</td> <td>一東</td> <td>20 元</td> <td>请你喝咖啡</td> </tr> <tr> <td>2024-11-20</td> <td>微信</td> <td>KEVINSKH</td> <td>10 元</td> <td>感谢开发方便快捷的图形化操作界面👍</td> </tr> <tr> <td>2024-11-26</td> <td>微信</td> <td></td> <td>3 元</td> <td>无</td> </tr> <tr> <td>2024-11-26</td> <td>微信</td> <td>Kaori</td> <td>1 元</td> <td>谢谢大佬的项目,要是能添加web控制页面就更好了</td> </tr> <tr> <td>2024-12-03</td> <td>微信</td> <td>17¥</td> <td>20 元</td> <td>谢谢,很方便的软件</td> </tr> <tr> <td>2024-12-03</td> <td>微信</td> <td>Cr@k3r</td> <td>5 元</td> <td>感谢你的工作</td> </tr> <tr> <td>2024-12-09</td> <td>微信</td> <td>Vince</td> <td>20 元</td> <td>支持国人开发!</td> </tr> <tr> <td>2024-12-11</td> <td>支付宝</td> <td>**萌</td> <td>20 元</td> <td>加油加油</td> </tr> <tr> <td>2024-12-11</td> <td>支付宝</td> <td>*石</td> <td>20 元</td> <td>无</td> </tr> <tr> <td>2024-12-16</td> <td>微信</td> <td>铁汉柔情</td> <td>1 元</td> <td>加油支持国人</td> </tr> <tr> <td>2024-12-16</td> <td>微信</td> <td>亚索🌪️</td> <td>1 元</td> <td>无</td> </tr> <tr> <td>2024-12-17</td> <td>微信</td> <td>ppp789</td> <td>1.6 元</td> <td>无</td> </tr> <tr> <td>2024-12-17</td> <td>支付宝</td> <td>*涛</td> <td>10 元</td> <td>无</td> </tr> <tr> <td>2024-12-18</td> <td>微信</td> <td>觉远</td> <td>6.66 元</td> <td>开源不易</td> </tr> </tbody> </table> <h2>贡献者</h2> <a href="https://github.com/luckjiawei/frpc-desktop/graphs/contributors"> <img src="https://contrib.rocks/image?repo=luckjiawei/frpc-desktop"> </a> <h2>License</h2> <p><a href="https://raw.githubusercontent.com/luckjiawei/frpc-desktop/main/LICENSE">MIT</a></p> <h2>Star History</h2> <p><a href="https://star-history.com/#luckjiawei/frpc-desktop&amp;Date"><img src="https://api.star-history.com/svg?repos=luckjiawei/frpc-desktop&amp;type=Date" alt="Star History Chart"></a></p> <!-- MARKDOWN LINKS & IMAGES --> + XiaoMi/ha_xiaomi_home + 2024-12-20T01:28:29Z + tag:github.com,2024-12-20:/XiaoMi/ha_xiaomi_home + + <p>Xiaomi Home Integration for Home Assistant</p><hr><h1>Xiaomi Home Integration for Home Assistant</h1> <p><a href="https://raw.githubusercontent.com/XiaoMi/ha_xiaomi_home/main/README.md">English</a> | <a href="https://raw.githubusercontent.com/XiaoMi/ha_xiaomi_home/main/doc/README_zh.md">简体中文</a></p> <p>Xiaomi Home Integration is an integrated component of Home Assistant supported by Xiaomi official. It allows you to use Xiaomi IoT smart devices in Home Assistant.</p> <h2>Installation</h2> <blockquote> <p>Home Assistant version requirement:</p> <ul> <li>Core $\geq$ 2024.11.0</li> <li>Operating System $\geq$ 13.0</li> </ul> </blockquote> <h3>Method 1: Git clone from GitHub</h3> <pre><code class="language-bash">cd config git clone https://github.com/XiaoMi/ha_xiaomi_home.git cd ha_xiaomi_home ./install.sh /config </code></pre> <p>We recommend this installation method, for it is convenient to switch to a tag when updating <code>xiaomi_home</code> to a certain version.</p> <p>For example, update to version v1.0.0</p> <pre><code class="language-bash">cd config/ha_xiaomi_home git checkout v1.0.0 ./install.sh /config </code></pre> <h3>Method 2: <a href="https://hacs.xyz/">HACS</a></h3> <p>HACS &gt; Overflow Menu &gt; Custom repositories &gt; Repository: <a href="https://github.com/XiaoMi/ha_xiaomi_home.git">https://github.com/XiaoMi/ha_xiaomi_home.git</a> &amp; Category: Integration &gt; ADD</p> <blockquote> <p>Xiaomi Home has not been added to the HACS store as a default yet. It's coming soon.</p> </blockquote> <h3>Method 3: Manually installation via <a href="https://github.com/home-assistant/addons/tree/master/samba">Samba</a> / <a href="https://github.com/hassio-addons/addon-ftp">FTPS</a></h3> <p>Download and copy <code>custom_components/xiaomi_home</code> folder to <code>config/custom_components</code> folder in your Home Assistant.</p> <h2>Configuration</h2> <h3>Login</h3> <p><a href="https://my.home-assistant.io/redirect/brand/?brand=xiaomi_home">Settings &gt; Devices &amp; services &gt; ADD INTEGRATION</a> &gt; Search <code>Xiaomi Home</code> &gt; NEXT &gt; Click here to login &gt; Sign in with Xiaomi account</p> <p><a href="https://my.home-assistant.io/redirect/config_flow_start/?domain=xiaomi_home"><img src="https://my.home-assistant.io/badges/config_flow_start.svg?sanitize=true" alt="Open your Home Assistant instance and start setting up a new integration."></a></p> <h3>Add MIoT Devices</h3> <p>After logging in successfully, a dialog box named "Select Home and Devices" pops up. You can select the home containing the device that you want to import in Home Assistant.</p> <h3>Multiple User Login</h3> <p>After a Xiaomi account login and its user configuration are completed, you can continue to add other Xiaomi accounts in the configured Xiaomi Home Integration page.</p> <p>Method: <a href="https://my.home-assistant.io/redirect/integration/?domain=xiaomi_home">Settings &gt; Devices &amp; services &gt; Configured &gt; Xiaomi Home</a> &gt; ADD HUB &gt; NEXT &gt; Click here to login &gt; Sign in with Xiaomi account</p> <p><a href="https://my.home-assistant.io/redirect/integration/?domain=xiaomi_home"><img src="https://my.home-assistant.io/badges/integration.svg?sanitize=true" alt="Open your Home Assistant instance and show an integration."></a></p> <h3>Update Configurations</h3> <p>You can change the configurations in the "Configuration Options" dialog box, in which you can update your user nickname and the list of the devices importing from Xiaomi Home APP, etc.</p> <p>Method: <a href="https://my.home-assistant.io/redirect/integration/?domain=xiaomi_home">Settings &gt; Devices &amp; services &gt; Configured &gt; Xiaomi Home</a> &gt; CONFIGURE &gt; Select the option to update</p> <h3>Debug Mode for Action</h3> <p>You can manually send Action command message with parameters to the device when the debug mode for action is activated. The user interface for sending the Action command with parameters is shown as a Text entity.</p> <p>Method: <a href="https://my.home-assistant.io/redirect/integration/?domain=xiaomi_home">Settings &gt; Devices &amp; services &gt; Configured &gt; Xiaomi Home</a> &gt; CONFIGURE &gt; Debug mode for action</p> <h2>Security</h2> <p>Xiaomi Home Integration and the affiliated cloud interface is provided by Xiaomi officially. You need to use your Xiaomi account to login to get your device list. Xiaomi Home Integration implements OAuth 2.0 login process, which does not keep your account password in the Home Assistant application. However, due to the limitation of the Home Assistant platform, the user information (including device information, certificates, tokens, etc.) of your Xiaomi account will be saved in the Home Assistant configuration file in clear text after successful login. You need to ensure that your Home Assistant configuration file is properly stored. The exposure of your configuration file may result in others logging in with your identity.</p> <h2>FAQ</h2> <ul> <li> <p>Does Xiaomi Home Integration support all Xiaomi Home devices?</p> <p>Xiaomi Home Integration currently supports most categories of Home device. Only a few categories are not supported. They are Bluetooth device, infrared device and virtual device.</p> </li> <li> <p>Does Xiaomi Home Integration support multiple Xiaomi accounts?</p> <p>Yes, it supports multiple Xiaomi accounts. Furthermore, Xiaomi Home Integration allows that devices belonging to different accounts can be added to a same area.</p> </li> <li> <p>Does Xiaomi Home Integration support local control?</p> <p>Local control is implemented by <a href="https://www.mi.com/shop/buy/detail?product_id=15755&amp;cfrom=search">Xiaomi Central Hub Gateway</a> (firmware version 3.4.0_0000 above) or Xiaomi home devices with built-in central hub gateway (software version 0.8.0 above) inside. If you do not have a Xiaomi central hub gateway or other devices having central hub gateway function, all control commands are sent through Xiaomi Cloud. The firmware for Xiaomi central hub gateway including the built-in central hub gateway supporting Home Assistant local control feature has not been released yet. Please refer to MIoT team's notification for upgrade plans.</p> <p>Xiaomi central hub gateway is only available in mainland China. In other regions, it is not available.</p> <p>Xiaomi Home Integration can also implement partial local control by enabling Xiaomi LAN control function. Xiaomi LAN control function can only control IP devices (devices connected to the router via WiFi or ethernet cable) in the same local area network as Home Assistant. It cannot control BLE Mesh, ZigBee, etc. devices. This function may cause some abnormalities. We recommend not to use this function. Xiaomi LAN control function is enabled by <a href="https://my.home-assistant.io/redirect/integration/?domain=xiaomi_home">Settings &gt; Devices &amp; services &gt; Configured &gt; Xiaomi Home</a> &gt; CONFIGURE &gt; Update LAN control configuration</p> <p>Xiaomi LAN control function is not restricted by region. It is available in all regions. However, if there is a central gateway in the local area network where Home Assistant is located, even Xiaomi LAN control function is enabled in the integration, it will not take effect.</p> </li> <li> <p>In which regions is Xiaomi Home Integration available?</p> <p>Xiaomi Home Integration can be used in the mainland of China, Europe, India, Russia, Singapore, and USA. As user data in Xiaomi Cloud of different regions is isolated, you need to choose your region when importing MIoT devices in the configuration process. Xiaomi Home Integration allows you to import devices of different regions to a same area.</p> </li> </ul> <h2>Principle of Messaging</h2> <h3>Control through the Cloud</h3> <div align="center"> <img src="https://raw.githubusercontent.com/XiaoMi/ha_xiaomi_home/main/doc/images/cloud_control.jpg" width="300"> <p>Image 1: Cloud control architecture</p> </div> <p>Xiaomi Home Integration subscribes to the interested device messages on the MQTT Broker in MIoT Cloud. When a device property changes or a device event occurs, the device sends an upstream message to MIoT Cloud, and the MQTT Broker pushes the subscribed device message to Xiaomi Home Integration. Because Xiaomi Home Integration does not need to poll to obtain the current device property value in the cloud, it can immediately receive the notification message when the properties change or the events occur. Thanks to the message subscription mechanism, Xiaomi Home Integration only queries the properties of all devices from the cloud once when the integration configuration is completed, which puts little access pressure on the cloud.</p> <p>Xiaomi Home Integration sends command messages to the devices via the HTTP interface of MIoT Cloud to control devices. The device reacts and responds after receiving the downstream message sent forward by MIoT Cloud.</p> <h3>Control locally</h3> <div align="center"> <img src="https://raw.githubusercontent.com/XiaoMi/ha_xiaomi_home/main/doc/images/local_control.jpg" width="300"> <p>Image 2: Local control architecture</p> </div> <p>Xiaomi central hub gateway contains a standard MQTT Broker, which implements a complete subscribe-publish mechanism. Xiaomi Home Integration subscribes to the interested device messages through Xiaomi central hub gateway. When a device property changes or a device event occurs, the device sends an upstream message to Xiaomi central hub gateway, and the MQTT Broker pushes the subscribed device message to Xiaomi Home Integration.</p> <p>When Xiaomi Home Integration needs to control a device, it publishes a device command message to the MQTT Broker, which is then forwarded to the device by Xiaomi central hub gateway. The device reacts and responds after receiving the downstream message from the gateway.</p> <h2>Mapping Relationship between MIoT-Spec-V2 and Home Assistant Entity</h2> <p><a href="https://iot.mi.com/v2/new/doc/introduction/knowledge/spec">MIoT-Spec-V2</a> is the abbreviation for MIoT Specification Version 2, which is an IoT protocol formulated by Xiaomi IoT platform to give a standard functional description of IoT devices. It includes function definition (referred to as data model by other IoT platforms), interaction model, message format, and encoding.</p> <p>In MIoT-Spec-V2 protocol, a product is defined as a device. A device contains several services. A service may have some properties, events and actions. Xiaomi Home Integration creates Home Assistant entities according to MIoT-Spec-V2. The conversion relationship is as follows.</p> <h3>General Conversion</h3> <ul> <li>Property</li> </ul> <table> <thead> <tr> <th>format</th> <th>access</th> <th>value-list</th> <th>value-range</th> <th>Entity in Home Assistant</th> </tr> </thead> <tbody> <tr> <td>writable</td> <td>string</td> <td>-</td> <td>-</td> <td>Text</td> </tr> <tr> <td>writable</td> <td>bool</td> <td>-</td> <td>-</td> <td>Switch</td> </tr> <tr> <td>writable</td> <td>not string &amp; not bool</td> <td>existent</td> <td>-</td> <td>Select</td> </tr> <tr> <td>writable</td> <td>not string &amp; not bool</td> <td>non-existent</td> <td>existent</td> <td>Number</td> </tr> <tr> <td>not writable</td> <td>-</td> <td>-</td> <td>-</td> <td>Sensor</td> </tr> </tbody> </table> <ul> <li>Event</li> </ul> <p>MIoT-Spec-V2 event is transformed to Event entity in Home Assistant. The event's parameters are also passed to entity's <code>_trigger_event</code>.</p> <ul> <li>Action</li> </ul> <table> <thead> <tr> <th>in</th> <th>Entity in Home Assistant</th> </tr> </thead> <tbody> <tr> <td>empty</td> <td>Button</td> </tr> <tr> <td>not empty</td> <td>Notify</td> </tr> </tbody> </table> <p>If the debug mode for action is activated, the Text entity will be created when the "in" field in the action spec is not empty.</p> <p>The "Attribute" item in the entity details page displays the format of the input parameter which is an ordered list, enclosed in square brackets []. The string elements in the list are enclosed in double quotation marks "".</p> <p>For example, the "Attributes" item in the details page of the Notify entity converted by the "Intelligent Speaker Execute Text Directive" action of xiaomi.wifispeaker.s12 siid=5, aiid=5 instance shows the action params as <code>[Text Content(str), Silent Execution(bool)]</code>. A properly formatted input is <code>["Hello", true]</code>.</p> <h3>Specific Conversion</h3> <p>MIoT-Spec-V2 uses URN for defining types. The format is <code>urn:&lt;namespace&gt;:&lt;type&gt;:&lt;name&gt;:&lt;value&gt;[:&lt;vendor-product&gt;:&lt;version&gt;]</code>, in which <code>name</code> is a human-readable word or phrase describing the instance of device, service, property, event and action. Xiaomi Home Integration first determines whether to convert the MIoT-Spec-V2 instance into a specific Home Assistant entity based on the instance's name. For the instance that does not meet the specific conversion rules, general conversion rules are used for conversion.</p> <p><code>namespace</code> is the namespace of MIoT-Spec-V2 instance. When its value is miot-spec-v2, it means that the specification is defined by Xiaomi. When its value is bluetooth-spec, it means that the specification is defined by Bluetooth Special Interest Group (SIG). When its value is not miot-spec-v2 or bluetooth-spec, it means that the specification is defined by other vendors. If MIoT-Spec-V2 <code>namespace</code> is not miot-spec-v2, a star mark <code>*</code> is added in front of the entity's name .</p> <ul> <li>Device</li> </ul> <p>The conversion follows <code>SPEC_DEVICE_TRANS_MAP</code>.</p> <pre><code>{ '&lt;device instance name&gt;':{ 'required':{ '&lt;service instance name&gt;':{ 'required':{ 'properties': { '&lt;property instance name&gt;': set&lt;property access: str&gt; }, 'events': set&lt;event instance name: str&gt;, 'actions': set&lt;action instance name: str&gt; }, 'optional':{ 'properties': set&lt;property instance name: str&gt;, 'events': set&lt;event instance name: str&gt;, 'actions': set&lt;action instance name: str&gt; } } }, 'optional':{ '&lt;service instance name&gt;':{ 'required':{ 'properties': { '&lt;property instance name&gt;': set&lt;property access: str&gt; }, 'events': set&lt;event instance name: str&gt;, 'actions': set&lt;action instance name: str&gt; }, 'optional':{ 'properties': set&lt;property instance name: str&gt;, 'events': set&lt;event instance name: str&gt;, 'actions': set&lt;action instance name: str&gt; } } }, 'entity': str } } </code></pre> <p>The "required" field under "device instance name" indicates the required services of the device. The "optional" field under "device instance name" indicates the optional services of the device. The "entity" field indicates the Home Assistant entity to be created. The "required" and the "optional" field under "service instance name" are required and optional properties, events and actions of the service respectively. The value of "property instance name" under "required" "properties" field is the access mode of the property. The condition for a successful match is that the value of "property instance name" is a subset of the access mode of the corresponding MIoT-Spec-V2 property instance.</p> <p>Home Assistant entity will not be created if MIoT-Spec-V2 device instance does not contain all required services, properties, events or actions.</p> <ul> <li>Service</li> </ul> <p>The conversion follows <code>SPEC_SERVICE_TRANS_MAP</code>.</p> <pre><code>{ '&lt;service instance name&gt;':{ 'required':{ 'properties': { '&lt;property instance name&gt;': set&lt;property access: str&gt; }, 'events': set&lt;event instance name: str&gt;, 'actions': set&lt;action instance name: str&gt; }, 'optional':{ 'properties': set&lt;property instance name: str&gt;, 'events': set&lt;event instance name: str&gt;, 'actions': set&lt;action instance name: str&gt; }, 'entity': str } } </code></pre> <p>The "required" field under "service instance name" indicates the required properties, events and actions of the service. The "optional" field indicates the optional properties, events and actions of the service. The "entity" field indicates the Home Assistant entity to be created. The value of "property instance name" under "required" "properties" field is the access mode of the property. The condition for a successful match is that the value of "property instance name" is a subset of the access mode of the corresponding MIoT-Spec-V2 property instance.</p> <p>Home Assistant entity will not be created if MIoT-Spec-V2 service instance does not contain all required properties, events or actions.</p> <ul> <li>Property</li> </ul> <p>The conversion follows <code>SPEC_PROP_TRANS_MAP</code>.</p> <pre><code>{ 'entities':{ '&lt;entity name&gt;':{ 'format': set&lt;str&gt;, 'access': set&lt;str&gt; } }, 'properties': { '&lt;property instance name&gt;':{ 'device_class': str, 'entity': str } } } </code></pre> <p>The "format" field under "entity name" represents the data format of the property, and matching with one value indicates a successful match. The "access" field under "entity name" represents the access mode of the property, and matching with all values is considered a successful match.</p> <p>The "entity" field under "property instance name", of which value is one of entity name under "entities" field, indicates the Home Assistant entity to be created. The "device_class" field under "property instance name" indicates the Home Assistant entity's <code>_attr_device_class</code>.</p> <ul> <li>Event</li> </ul> <p>The conversion follows <code>SPEC_EVENT_TRANS_MAP</code>.</p> <pre><code>{ '&lt;event instance name&gt;': str } </code></pre> <p>The value of the event instance name indicates <code>_attr_device_class</code> of the Home Assistant entity to be created.</p> <h3>MIoT-Spec-V2 Filter</h3> <p><code>spec_filter.json</code> is used to filter out the MIoT-Spec-V2 instance that will not be converted to Home Assistant entity.</p> <p>The format of <code>spec_filter.json</code> is as follows.</p> <pre><code>{ "&lt;MIoT-Spec-V2 device instance&gt;":{ "services": list&lt;service_iid: str&gt;, "properties": list&lt;service_iid.property_iid: str&gt;, "events": list&lt;service_iid.event_iid: str&gt;, "actions": list&lt;service_iid.action_iid: str&gt;, } } </code></pre> <p>The key of <code>spec_filter.json</code> dictionary is the urn excluding the "version" field of the MIoT-Spec-V2 device instance. The firmware of different versions of the same product may be associated with the MIoT-Spec-V2 device instances of different versions. It is required that the MIoT-Spec-V2 instance of a higher version must contain all MIoT-Spec-V2 instances of the lower versions when a vendor defines the MIoT-Spec-V2 of its product on MIoT platform. Thus, the key of <code>spec_filter.json</code> does not need to specify the version number of MIoT-Spec-V2 device instance.</p> <p>The value of "services", "properties", "events" or "actions" fields under "device instance" is the instance id (iid) of the service, property, event or action that will be ignored in the conversion process. Wildcard matching is supported.</p> <p>Example:</p> <pre><code>{ "urn:miot-spec-v2:device:television:0000A010:xiaomi-rmi1":{ "services": ["*"] # Filter out all services. It is equivalent to completely ignoring the device with such MIoT-Spec-V2 device instance. }, "urn:miot-spec-v2:device:gateway:0000A019:xiaomi-hub1": { "services": ["3"], # Filter out the service whose iid=3. "properties": ["4.*"] # Filter out all properties in the service whose iid=4. "events": ["4.1"], # Filter out the iid=1 event in the iid=4 service. "actions": ["4.1"] # Filter out the iid=1 action in the iid=4 service. } } </code></pre> <p>Device information service (urn:miot-spec-v2:service:device-information:00007801) of all devices will never be converted to Home Assistant entity.</p> <h2>Multiple Language Support</h2> <p>There are 8 languages available for selection in the config flow language option of Xiaomi Home, including Simplified Chinese, Traditional Chinese, English, Spanish, Russian, French, German, and Japanese. The config flow page in Simplified Chinese and English has been manually reviewed by the developer. Other languages are translated by machine translation. If you want to modify the words and sentences in the config flow page, you need to modify the json file of the certain language in <code>custom_components/xiaomi_home/translations/</code> and <code>custom_components/xiaomi_home/miot/i18n/</code> directory.</p> <p>When displaying Home Assistant entity name, Xiaomi Home downloads the multiple language file configured by the device vendor from MIoT Cloud, which contains translations for MIoT-Spec-V2 instances of the device. <code>multi_lang.json</code> is a locally maintained multiple language dictionary, which has a higher priority than the multiple language file obtained from the cloud and can be used to supplement or modify the multiple language translation of devices.</p> <p>The format of <code>multi_lang.json</code> is as follows.</p> <pre><code>{ "&lt;MIoT-Spec-V2 device instance&gt;": { "&lt;language code&gt;": { "&lt;instance code&gt;": &lt;translation: str&gt; } } } </code></pre> <p>The key of <code>multi_lang.json</code> dictionary is the urn excluding the "version" field of the MIoT-Spec-V2 device instance.</p> <p>The language code is zh-Hans, zh-Hant, en, es, ru, fr, de, or ja, corresponding to the 8 selectable languages mentioned above.</p> <p>The instance code is the code of the MIoT-Spec-V2 instance, which is in the format of:</p> <pre><code>service:&lt;siid&gt; # service service:&lt;siid&gt;:property:&lt;piid&gt; # property service:&lt;siid&gt;:property:&lt;piid&gt;:valuelist:&lt;value&gt; # the value in value-list of a property service:&lt;siid&gt;:event:&lt;eiid&gt; # event service:&lt;siid&gt;:action:&lt;aiid&gt; # action </code></pre> <p>siid, piid, eiid, aiid and value are all decimal three-digit integers.</p> <p>Example:</p> <pre><code>{ "urn:miot-spec-v2:device:health-pot:0000A051:chunmi-a1": { "zh-Hant": { "service:002": "養生壺", "service:002:property:001": "工作狀態", "service:002:property:001:valuelist:000": "待機中", "service:002:action:002": "停止烹飪", "service:005:event:001": "烹飪完成" } } } </code></pre> <blockquote> <p>If you edit <code>specv2entity.py</code>, <code>spec_filter.json</code> or <code>multi_lang.json</code> in the <code>custom_components/xiaomi_home/miot/specs</code> directory in your Home Assistant, you need to update the entity conversion rule in the integration's CONFIGURE page to take effect. Method: <a href="https://my.home-assistant.io/redirect/integration/?domain=xiaomi_home">Settings &gt; Devices &amp; services &gt; Configured &gt; Xiaomi Home</a> &gt; CONFIGURE &gt; Update Entity Conversion Rule</p> </blockquote> <h2>Documents</h2> <ul> <li><a href="https://raw.githubusercontent.com/XiaoMi/ha_xiaomi_home/main/LICENSE.md">License</a></li> <li>Contribution Guidelines: <a href="https://raw.githubusercontent.com/XiaoMi/ha_xiaomi_home/main/CONTRIBUTING.md">English</a> | <a href="https://raw.githubusercontent.com/XiaoMi/ha_xiaomi_home/main/doc/CONTRIBUTING_zh.md">简体中文</a></li> <li><a href="https://raw.githubusercontent.com/XiaoMi/ha_xiaomi_home/main/CHANGELOG.md">ChangeLog</a></li> <li>Development Documents: <a href="https://developers.home-assistant.io/docs/creating_component_index">https://developers.home-assistant.io/docs/creating_component_index</a></li> </ul> <h2>Directory Structure</h2> <ul> <li>miot: core code.</li> <li>miot/miot_client: Adding a login user in the integration needs adding a miot_client instance.</li> <li>miot/miot_cloud: Contains functions related to the cloud service, including OAuth login process, HTTP interface functions (to get the user information, to send the device control command, etc.)</li> <li>miot/miot_device: Device entity, including device information, processing logic of property, event and action.</li> <li>miot/miot_mips: Message bus for subscribing and publishing method.</li> <li>miot/miot_spec: Parse MIoT-Spec-V2.</li> <li>miot/miot_lan: Device LAN control, including device discovery, device control, etc.</li> <li>miot/miot_mdns: Central hub gateway service LAN discovery.</li> <li>miot/miot_network: Obtain network status and network information.</li> <li>miot/miot_storage: File storage for the integration.</li> <li>miot/test: Test scripts.</li> <li>config_flow: Config flow.</li> </ul> \ No newline at end of file diff --git a/alloy/daily/index.xml b/alloy/daily/index.xml index 89da74836fa..ffb5fd2b008 100644 --- a/alloy/daily/index.xml +++ b/alloy/daily/index.xml @@ -1,7 +1,7 @@ GitHub Alloy Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:28:51Z + 2024-12-20T01:28:41Z Daily Trending of Alloy in GitHub \ No newline at end of file diff --git a/alpine-abuild/daily/index.xml b/alpine-abuild/daily/index.xml index 428762069b0..95471547947 100644 --- a/alpine-abuild/daily/index.xml +++ b/alpine-abuild/daily/index.xml @@ -1,7 +1,7 @@ GitHub Alpine Abuild Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:28:51Z + 2024-12-20T01:28:41Z Daily Trending of Alpine Abuild in GitHub \ No newline at end of file diff --git a/altium-designer/daily/index.xml b/altium-designer/daily/index.xml index 7a9bc2c0953..16200c2eedf 100644 --- a/altium-designer/daily/index.xml +++ b/altium-designer/daily/index.xml @@ -1,7 +1,7 @@ GitHub Altium Designer Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:28:52Z + 2024-12-20T01:28:42Z Daily Trending of Altium Designer in GitHub \ No newline at end of file diff --git a/ampl/daily/index.xml b/ampl/daily/index.xml index f2c009f3e97..29fcca268e3 100644 --- a/ampl/daily/index.xml +++ b/ampl/daily/index.xml @@ -1,7 +1,7 @@ GitHub AMPL Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:28:52Z + 2024-12-20T01:28:41Z Daily Trending of AMPL in GitHub \ No newline at end of file diff --git a/angelscript/daily/index.xml b/angelscript/daily/index.xml index 12e55d76470..5c98ecdd2d2 100644 --- a/angelscript/daily/index.xml +++ b/angelscript/daily/index.xml @@ -1,7 +1,7 @@ GitHub AngelScript Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:28:53Z + 2024-12-20T01:28:43Z Daily Trending of AngelScript in GitHub \ No newline at end of file diff --git a/ant-build-system/daily/index.xml b/ant-build-system/daily/index.xml index 7d6dab1e4a3..eb2ced9f9b4 100644 --- a/ant-build-system/daily/index.xml +++ b/ant-build-system/daily/index.xml @@ -1,7 +1,7 @@ GitHub Ant Build System Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:28:53Z + 2024-12-20T01:28:42Z Daily Trending of Ant Build System in GitHub \ No newline at end of file diff --git a/antlr/daily/index.xml b/antlr/daily/index.xml index 7ae6107f318..93066613f35 100644 --- a/antlr/daily/index.xml +++ b/antlr/daily/index.xml @@ -1,7 +1,7 @@ GitHub ANTLR Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:28:54Z + 2024-12-20T01:28:43Z Daily Trending of ANTLR in GitHub \ No newline at end of file diff --git a/apacheconf/daily/index.xml b/apacheconf/daily/index.xml index 315b8a529be..d176791d026 100644 --- a/apacheconf/daily/index.xml +++ b/apacheconf/daily/index.xml @@ -1,7 +1,7 @@ GitHub ApacheConf Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:28:55Z + 2024-12-20T01:28:44Z Daily Trending of ApacheConf in GitHub \ No newline at end of file diff --git a/apex/daily/index.xml b/apex/daily/index.xml index dd2e6d6f6c0..f0787662830 100644 --- a/apex/daily/index.xml +++ b/apex/daily/index.xml @@ -1,7 +1,7 @@ GitHub Apex Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:28:55Z + 2024-12-20T01:28:45Z Daily Trending of Apex in GitHub \ No newline at end of file diff --git a/api-blueprint/daily/index.xml b/api-blueprint/daily/index.xml index 932808fd401..f0a74d61999 100644 --- a/api-blueprint/daily/index.xml +++ b/api-blueprint/daily/index.xml @@ -1,7 +1,7 @@ GitHub API Blueprint Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:28:55Z + 2024-12-20T01:28:44Z Daily Trending of API Blueprint in GitHub \ No newline at end of file diff --git a/apl/daily/index.xml b/apl/daily/index.xml index 7b194ea4982..0b9e581e2f8 100644 --- a/apl/daily/index.xml +++ b/apl/daily/index.xml @@ -1,7 +1,7 @@ GitHub APL Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:28:54Z + 2024-12-20T01:28:45Z Daily Trending of APL in GitHub \ No newline at end of file diff --git a/apollo-guidance-computer/daily/index.xml b/apollo-guidance-computer/daily/index.xml index 05f7b212aa1..ed0dd0d5846 100644 --- a/apollo-guidance-computer/daily/index.xml +++ b/apollo-guidance-computer/daily/index.xml @@ -1,7 +1,7 @@ GitHub Apollo Guidance Computer Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:28:57Z + 2024-12-20T01:28:46Z Daily Trending of Apollo Guidance Computer in GitHub \ No newline at end of file diff --git a/applescript/daily/index.xml b/applescript/daily/index.xml index fa51a3734b8..389cd00f2dc 100644 --- a/applescript/daily/index.xml +++ b/applescript/daily/index.xml @@ -1,7 +1,7 @@ GitHub AppleScript Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:28:56Z + 2024-12-20T01:28:46Z Daily Trending of AppleScript in GitHub \ No newline at end of file diff --git a/arc/daily/index.xml b/arc/daily/index.xml index 5f6931dd40b..455fed51c8b 100644 --- a/arc/daily/index.xml +++ b/arc/daily/index.xml @@ -1,7 +1,7 @@ GitHub Arc Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:28:56Z + 2024-12-20T01:28:45Z Daily Trending of Arc in GitHub \ No newline at end of file diff --git a/asciidoc/daily/index.xml b/asciidoc/daily/index.xml index e682e6cc9f0..12719e0145a 100644 --- a/asciidoc/daily/index.xml +++ b/asciidoc/daily/index.xml @@ -1,7 +1,7 @@ GitHub AsciiDoc Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:28:57Z + 2024-12-20T01:28:46Z Daily Trending of AsciiDoc in GitHub \ No newline at end of file diff --git a/asl/daily/index.xml b/asl/daily/index.xml index 5e492b09207..87dc702f308 100644 --- a/asl/daily/index.xml +++ b/asl/daily/index.xml @@ -1,7 +1,7 @@ GitHub ASL Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:28:58Z + 2024-12-20T01:28:48Z Daily Trending of ASL in GitHub \ No newline at end of file diff --git a/asn.1/daily/index.xml b/asn.1/daily/index.xml index 2439474fd42..1a67ebf5a41 100644 --- a/asn.1/daily/index.xml +++ b/asn.1/daily/index.xml @@ -1,7 +1,7 @@ GitHub ASN.1 Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:28:59Z + 2024-12-20T01:28:47Z Daily Trending of ASN.1 in GitHub \ No newline at end of file diff --git a/asp.net/daily/index.xml b/asp.net/daily/index.xml index 53ff055c0f7..f35f5162d27 100644 --- a/asp.net/daily/index.xml +++ b/asp.net/daily/index.xml @@ -1,7 +1,7 @@ GitHub ASP.NET Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:28:58Z + 2024-12-20T01:28:47Z Daily Trending of ASP.NET in GitHub \ No newline at end of file diff --git a/aspectj/daily/index.xml b/aspectj/daily/index.xml index 82416a1a777..0abcf0054f9 100644 --- a/aspectj/daily/index.xml +++ b/aspectj/daily/index.xml @@ -1,7 +1,7 @@ GitHub AspectJ Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:28:59Z + 2024-12-20T01:28:49Z Daily Trending of AspectJ in GitHub \ No newline at end of file diff --git a/assembly/daily/index.xml b/assembly/daily/index.xml index db33a27968e..abc2eb20bb5 100644 --- a/assembly/daily/index.xml +++ b/assembly/daily/index.xml @@ -1,7 +1,7 @@ GitHub Assembly Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:29:01Z + 2024-12-20T01:28:51Z Daily Trending of Assembly in GitHub \ No newline at end of file diff --git a/astro/daily/index.xml b/astro/daily/index.xml index f37535bb308..9154643e710 100644 --- a/astro/daily/index.xml +++ b/astro/daily/index.xml @@ -1,7 +1,7 @@ GitHub Astro Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:29:00Z + 2024-12-20T01:28:50Z Daily Trending of Astro in GitHub \ No newline at end of file diff --git a/asymptote/daily/index.xml b/asymptote/daily/index.xml index a228f0caf84..c294bea0fa7 100644 --- a/asymptote/daily/index.xml +++ b/asymptote/daily/index.xml @@ -1,7 +1,7 @@ GitHub Asymptote Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:29:00Z + 2024-12-20T01:28:49Z Daily Trending of Asymptote in GitHub \ No newline at end of file diff --git a/ats/daily/index.xml b/ats/daily/index.xml index f8d92ac062c..ecf3f239dd1 100644 --- a/ats/daily/index.xml +++ b/ats/daily/index.xml @@ -1,7 +1,7 @@ GitHub ATS Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:29:02Z + 2024-12-20T01:28:52Z Daily Trending of ATS in GitHub \ No newline at end of file diff --git a/augeas/daily/index.xml b/augeas/daily/index.xml index 4c97ed66825..7ac25661b87 100644 --- a/augeas/daily/index.xml +++ b/augeas/daily/index.xml @@ -1,7 +1,7 @@ GitHub Augeas Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:29:03Z + 2024-12-20T01:28:51Z Daily Trending of Augeas in GitHub \ No newline at end of file diff --git a/autohotkey/daily/index.xml b/autohotkey/daily/index.xml index 832a026e463..bd5fa112516 100644 --- a/autohotkey/daily/index.xml +++ b/autohotkey/daily/index.xml @@ -1,7 +1,7 @@ GitHub AutoHotkey Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:29:02Z + 2024-12-20T01:28:52Z Daily Trending of AutoHotkey in GitHub \ No newline at end of file diff --git a/autoit/daily/index.xml b/autoit/daily/index.xml index 4a88acf2cd6..e5b0e365d64 100644 --- a/autoit/daily/index.xml +++ b/autoit/daily/index.xml @@ -1,7 +1,7 @@ GitHub AutoIt Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:29:02Z + 2024-12-20T01:28:52Z Daily Trending of AutoIt in GitHub \ No newline at end of file diff --git a/avro-idl/daily/index.xml b/avro-idl/daily/index.xml index 810141faac5..5e2ae9b909d 100644 --- a/avro-idl/daily/index.xml +++ b/avro-idl/daily/index.xml @@ -1,7 +1,7 @@ GitHub Avro IDL Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:29:04Z + 2024-12-20T01:28:53Z Daily Trending of Avro IDL in GitHub \ No newline at end of file diff --git a/awk/daily/index.xml b/awk/daily/index.xml index ed15895445c..80e53f6f658 100644 --- a/awk/daily/index.xml +++ b/awk/daily/index.xml @@ -1,7 +1,7 @@ GitHub Awk Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:29:04Z + 2024-12-20T01:28:54Z Daily Trending of Awk in GitHub \ No newline at end of file diff --git a/ballerina/daily/index.xml b/ballerina/daily/index.xml index 480dd7f64af..6a1d40efa0c 100644 --- a/ballerina/daily/index.xml +++ b/ballerina/daily/index.xml @@ -1,7 +1,7 @@ GitHub Ballerina Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:29:03Z + 2024-12-20T01:28:54Z Daily Trending of Ballerina in GitHub \ No newline at end of file diff --git a/basic/daily/index.xml b/basic/daily/index.xml index 3a1031b4b78..76c3b9453c8 100644 --- a/basic/daily/index.xml +++ b/basic/daily/index.xml @@ -1,7 +1,7 @@ GitHub BASIC Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:29:05Z + 2024-12-20T01:28:55Z Daily Trending of BASIC in GitHub \ No newline at end of file diff --git a/batchfile/daily/index.xml b/batchfile/daily/index.xml index 25191cc699f..04f55b388c7 100644 --- a/batchfile/daily/index.xml +++ b/batchfile/daily/index.xml @@ -1,7 +1,7 @@ GitHub Batchfile Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:29:06Z + 2024-12-20T01:28:56Z Daily Trending of Batchfile in GitHub \ No newline at end of file diff --git a/beef/daily/index.xml b/beef/daily/index.xml index f05a57ea071..8268fcce683 100644 --- a/beef/daily/index.xml +++ b/beef/daily/index.xml @@ -1,7 +1,7 @@ GitHub Beef Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:29:05Z + 2024-12-20T01:28:55Z Daily Trending of Beef in GitHub \ No newline at end of file diff --git a/befunge/daily/index.xml b/befunge/daily/index.xml index 2f3a597a718..dec16819541 100644 --- a/befunge/daily/index.xml +++ b/befunge/daily/index.xml @@ -1,7 +1,7 @@ GitHub Befunge Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:29:06Z + 2024-12-20T01:28:55Z Daily Trending of Befunge in GitHub \ No newline at end of file diff --git a/berry/daily/index.xml b/berry/daily/index.xml index be86606b38f..8cae294991f 100644 --- a/berry/daily/index.xml +++ b/berry/daily/index.xml @@ -1,7 +1,7 @@ GitHub Berry Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:29:07Z + 2024-12-20T01:28:57Z Daily Trending of Berry in GitHub \ No newline at end of file diff --git a/bibtex/daily/index.xml b/bibtex/daily/index.xml index 5e11f55a56a..1b6e70674a9 100644 --- a/bibtex/daily/index.xml +++ b/bibtex/daily/index.xml @@ -1,7 +1,7 @@ GitHub BibTeX Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:29:07Z + 2024-12-20T01:28:57Z Daily Trending of BibTeX in GitHub \ No newline at end of file diff --git a/bicep/daily/index.xml b/bicep/daily/index.xml index 7ff4ea9fab9..004de035379 100644 --- a/bicep/daily/index.xml +++ b/bicep/daily/index.xml @@ -1,7 +1,7 @@ GitHub Bicep Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:29:08Z + 2024-12-20T01:28:58Z Daily Trending of Bicep in GitHub \ No newline at end of file diff --git a/bison/daily/index.xml b/bison/daily/index.xml index ffedee7170f..fa63100190c 100644 --- a/bison/daily/index.xml +++ b/bison/daily/index.xml @@ -1,7 +1,7 @@ GitHub Bison Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:29:09Z + 2024-12-20T01:28:59Z Daily Trending of Bison in GitHub \ No newline at end of file diff --git a/bitbake/daily/index.xml b/bitbake/daily/index.xml index 2b291105602..ea3bac51612 100644 --- a/bitbake/daily/index.xml +++ b/bitbake/daily/index.xml @@ -1,7 +1,7 @@ GitHub BitBake Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:29:10Z + 2024-12-20T01:29:01Z Daily Trending of BitBake in GitHub \ No newline at end of file diff --git a/blade/daily/index.xml b/blade/daily/index.xml index 41d5b97904b..a01f4de278f 100644 --- a/blade/daily/index.xml +++ b/blade/daily/index.xml @@ -1,7 +1,7 @@ GitHub Blade Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:29:10Z + 2024-12-20T01:29:00Z Daily Trending of Blade in GitHub \ No newline at end of file diff --git a/blitzbasic/daily/index.xml b/blitzbasic/daily/index.xml index 0be1200df69..1b49ee3c397 100644 --- a/blitzbasic/daily/index.xml +++ b/blitzbasic/daily/index.xml @@ -1,7 +1,7 @@ GitHub BlitzBasic Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:29:09Z + 2024-12-20T01:28:59Z Daily Trending of BlitzBasic in GitHub \ No newline at end of file diff --git a/blitzmax/daily/index.xml b/blitzmax/daily/index.xml index 13fd6145b3f..014d2963c41 100644 --- a/blitzmax/daily/index.xml +++ b/blitzmax/daily/index.xml @@ -1,7 +1,7 @@ GitHub BlitzMax Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:29:12Z + 2024-12-20T01:29:02Z Daily Trending of BlitzMax in GitHub \ No newline at end of file diff --git a/bluespec/daily/index.xml b/bluespec/daily/index.xml index d42ef54fa90..2747d7cab20 100644 --- a/bluespec/daily/index.xml +++ b/bluespec/daily/index.xml @@ -1,7 +1,7 @@ GitHub Bluespec Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:29:11Z + 2024-12-20T01:29:02Z Daily Trending of Bluespec in GitHub \ No newline at end of file diff --git a/boo/daily/index.xml b/boo/daily/index.xml index d7a6959c8ad..1b173ae3a8f 100644 --- a/boo/daily/index.xml +++ b/boo/daily/index.xml @@ -1,7 +1,7 @@ GitHub Boo Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:29:12Z + 2024-12-20T01:29:02Z Daily Trending of Boo in GitHub \ No newline at end of file diff --git a/boogie/daily/index.xml b/boogie/daily/index.xml index 969d0245091..4dd72bcaba7 100644 --- a/boogie/daily/index.xml +++ b/boogie/daily/index.xml @@ -1,7 +1,7 @@ GitHub Boogie Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:29:13Z + 2024-12-20T01:29:03Z Daily Trending of Boogie in GitHub \ No newline at end of file diff --git a/brainfuck/daily/index.xml b/brainfuck/daily/index.xml index f5feeb8e503..9e08c2cbc87 100644 --- a/brainfuck/daily/index.xml +++ b/brainfuck/daily/index.xml @@ -1,7 +1,7 @@ GitHub Brainfuck Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:29:13Z + 2024-12-20T01:29:03Z Daily Trending of Brainfuck in GitHub \ No newline at end of file diff --git a/brightscript/daily/index.xml b/brightscript/daily/index.xml index f5440205340..e5bfdf2bb34 100644 --- a/brightscript/daily/index.xml +++ b/brightscript/daily/index.xml @@ -1,7 +1,7 @@ GitHub Brightscript Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:29:14Z + 2024-12-20T01:29:05Z Daily Trending of Brightscript in GitHub \ No newline at end of file diff --git a/browserslist/daily/index.xml b/browserslist/daily/index.xml index 179767bda1e..f75e129276f 100644 --- a/browserslist/daily/index.xml +++ b/browserslist/daily/index.xml @@ -1,7 +1,7 @@ GitHub Browserslist Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:29:14Z + 2024-12-20T01:29:04Z Daily Trending of Browserslist in GitHub \ No newline at end of file diff --git a/c%23/daily/index.xml b/c%23/daily/index.xml index 916a98fb598..eb04f470d4a 100644 --- a/c%23/daily/index.xml +++ b/c%23/daily/index.xml @@ -1,7 +1,7 @@ GitHub C# Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:29:22Z + 2024-12-20T01:29:18Z Daily Trending of C# in GitHub \ No newline at end of file diff --git a/c++/daily/index.xml b/c++/daily/index.xml index 3e362da1f19..0e0aeccd908 100644 --- a/c++/daily/index.xml +++ b/c++/daily/index.xml @@ -1,14 +1,14 @@ GitHub C++ Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:29:28Z + 2024-12-20T01:29:23Z Daily Trending of C++ in GitHub - dillongoostudios/goo-engine - 2024-12-19T01:29:28Z - tag:github.com,2024-12-19:/dillongoostudios/goo-engine - - <p>Custom build of blender with some extra NPR features.</p><hr><h1>Goo Engine</h1> <p>Goo Engine is a version of Blender by <a href="https://www.youtube.com/dillongoo">DillonGoo Studios</a> with some key modifications to the source code that allow us to focus on NPR and Anime style rendering. Key features include the four custom Shader nodes we added to Eevee and Light Groups. You can learn about them on the <a href="https://www.youtube.com/@professorGoo">Professor Goo YouTube channel</a>.</p> <p>Some have asked why we haven't pushed these changes to Blender's master branch: this is because many of these features would not be accepted as they are and may destablize other features like Cycles. We only use Eevee for NPR so we prioritize specific features which the Blender Institute understandably can't afford to make compromises for. This allows us to develop and test quickly. However, we do actively update Goo Engine to keep up with the native Blender branch so they can evolve side by side. We also regularly add and improve custom features as we use Goo Engine on projects at the studio. <a href="https://twitter.com/dillongoostudio">Stay tuned</a> for updates.</p> <p>Get the pre-built download on the <a href="https://www.patreon.com/dillongoo">Patreon page</a> to support continued development of Goo Engine.</p> <h1>Blender</h1> <p>Blender is the free and open source 3D creation suite. It supports the entirety of the 3D pipeline-modeling, rigging, animation, simulation, rendering, compositing, motion tracking and video editing.</p> <p><img src="https://code.blender.org/wp-content/uploads/2018/12/springrg.jpg" alt="Blender screenshot" title="Blender screenshot"></p> <h2>Project Pages</h2> <ul> <li><a href="http://www.blender.org">Main Website</a></li> <li><a href="https://docs.blender.org/manual/en/latest/index.html">Reference Manual</a></li> <li><a href="https://www.blender.org/community/">User Community</a></li> </ul> <h2>Development</h2> <ul> <li><a href="https://developer.blender.org/docs/handbook/building_blender/">Build Instructions</a></li> <li><a href="https://projects.blender.org">Code Review &amp; Bug Tracker</a></li> <li><a href="https://devtalk.blender.org">Developer Forum</a></li> <li><a href="https://developer.blender.org/docs/">Developer Documentation</a></li> </ul> <h2>License</h2> <p>Blender as a whole is licensed under the GNU General Public License, Version 3. Individual files may have a different, but compatible license.</p> <p>See <a href="https://www.blender.org/about/license">blender.org/about/license</a> for details.</p> + khanhduytran0/LiveContainer + 2024-12-20T01:29:23Z + tag:github.com,2024-12-20:/khanhduytran0/LiveContainer + + <p>Run iOS app without actually installing it!</p><hr><h1>LiveContainer</h1> <p>Run iOS app without actually installing it!</p> <ul> <li>Allows you to install unlimited apps (10 apps limit of free developer account do not apply here!), have multiple versions of an app installed and multiple data containers.</li> <li>When JIT is available, codesign is entirely bypassed, no need to sign your apps before installing. Otherwise, app will be signed with the same certificate used by LiveContainer.</li> </ul> <h2>Compatibility</h2> <p>Unfortunately, not all apps work in LiveContainer, so we have a <a href="https://github.com/khanhduytran0/LiveContainer/labels/compatibility">compatibility list</a> to tell if there is apps that have issues. If they aren't on this list, then it's likely going run. However, if it doesn't work, please make an <a href="https://github.com/khanhduytran0/LiveContainer/issues/new/choose">issue</a> about it.</p> <h2>Usage</h2> <p>Requires AltStore or SideStore</p> <ul> <li>Build from source or get prebuilt ipa in <a href="https://github.com/khanhduytran0/LiveContainer/actions">the Actions tab</a></li> <li>Open LiveContainer, tap the plus icon in the upper right hand corner and select IPA files to install.</li> <li>Choose the app you want to open in the next launch.</li> <li>You can long-press the app to manage it.</li> </ul> <h3>Without JIT</h3> <p>Without JIT, guest apps need to be codesigned, which requires retrieving the certificate and password from SideStore or AltStore. This process involves applying a tweak to SideStore/AltStore, allowing it to expose the certificate to LiveContainer.</p> <ul> <li>Open Settings in LiveContainer, tap "Patch SideStore/AltStore", and the app will switch to SideStore/AltStore to reinstall it with the tweak applied. If you use AltWidget, select "Keep Extension."</li> <li>Wait for the installation to finish, then <strong>reopen SideStore/AltStore</strong>.</li> <li>Return to LiveContainer and press "Test JIT-Less Mode." If it says "Test Passed," JIT-less mode is ready.</li> <li>Install your app via the "Apps" tab.</li> <li>Tap the run icon, it will attempt to restart LiveContainer with guest app loaded.</li> </ul> <p>Note: If you update or reinstall SideStore/AltStore, you'll need to reapply the patch. Re-patch is not needed when you refresh your store.</p> <h3>With JIT (requires SideStore)</h3> <ul> <li>Tap the play icon, it will jump to SideStore and exit.</li> <li>In SideStore, hold down LiveContainer and tap <code>Enable JIT</code>. If you have SideStore build supporting JIT URL scheme, it jumps back to LiveContainer with JIT enabled and the guest app is ready to use.</li> </ul> <h3>Add to Home Screen</h3> <p>Long press the app and you will see 2 ways to add your app to home screen:</p> <ol> <li><strong>Launch URL</strong>: Copy the provided URL, create a shortcut that opens the app, and add it to your home screen. You’ll need to create a separate shortcut for each app.</li> <li><strong>Create App Clip</strong>: Install an App Clip MDM profile, which adds the app to your home screen. Note that launching the app includes an extra jump, and the App Clip will remain in the app switcher.</li> </ol> <h3>Multiple LiveContainers</h3> <p>Using two LiveContainers allows you to run two different apps simultaneously, with <em>almost</em> seamless data transfer between the LiveContainers.</p> <p>To install a second LiveContainer, go to Settings and tap "Install Another LiveContainer."</p> <p>The first LiveContainer (blue icon) always launches by default. If an app is already running in the first container, you'll be prompted to either open it in the second LiveContainer (gray icon) or terminate the current app and relaunch it in the first. If the app is already running in the second container, it will switch automatically. To use an app in the second container, you must convert this app to a shared app. You can do that by opening the first LiveContainer (blue), long press on your app, open the settings of your app and then "Convert to Shared App". After that, you can launch your app using LiveContainer2 (grey).</p> <h3>Fix File Picker &amp; Local Notification</h3> <p>Some apps may experience issues with their file pickers or not be able to apply for notification permission in LiveContainer. To resolve this, enable "Fix File Picker &amp; Local Notification" in the app-specific settings.</p> <h3>"Open In App" Support</h3> <ul> <li>Tap the link icon in the top-right corner of the "Apps" tab and input the URL. LiveContainer will detect the appropriate app and ask if you want to launch it.</li> <li>What's more, you can share a web page to LiveContainer using <a href="https://www.icloud.com/shortcuts/44ea82ce7ed8469ea24198c375db09a0">this shortcut</a>. Be sure to add this shortcut to "Favorites" in share sheet actions.</li> </ul> <h3>JIT Support</h3> <p>To enable JIT for a guest app:</p> <ul> <li>Enter your SideJITServer/JITStreamer address and device UDID in LiveContainer settings.</li> <li>Enable "Launch with JIT" in its app-specific settings.</li> <li>LiveContainer will communicate with the server before launching the app to enable JIT.</li> </ul> <h3>Installing external tweaks</h3> <p>LiveContainer comes with its own TweakLoader, which automatically load CydiaSubstrate and tweaks. TweakLoader is injected to every app you install. You can override <code>TweakLoader.dylib</code> symlink with your own implementation if you wish.</p> <p>.dylib files in <code>Tweaks</code> folder are global, they are loaded to all apps. You can create app-specific tweaks folder and switch between them instantly.</p> <p>To install tweaks, you can use the built-in tweak manager in LiveContainer, which will automatically sign tweaks as you import. Otherwise, you can manually add them and then use the tweak manager to sign them.</p> <h3>Hiding Apps</h3> <p>LiveContainer offers three levels of app hiding:</p> <ul> <li><strong>Lock Apps</strong>: In the app-specific settings, you can lock an app, requiring Face ID or a password to launch it.</li> <li><strong>Hide Locked Apps</strong>: Once locked, you can hide the app. It will appear as a placeholder in the "Hidden Apps" section, and authentication is needed to view or launch it.</li> <li><strong>Strict Hiding Mode</strong>: For complete invisibility, enable "Strict Hiding Mode" in LiveContainer's settings after authentication. Hidden apps will no longer appear in the interface. To access them, triple-tap the "x Apps in total" text on the main screen and authenticate to unlock the apps when you relaunch LiveContainer.</li> </ul> <h2>Building</h2> <pre><code>export THEOS=/path/to/theos git submodule update --init --recursive make package </code></pre> <h2>Project structure</h2> <h3>Main executable</h3> <ul> <li>Core of LiveContainer</li> <li>Contains the logic of setting up guest environment and loading guest app.</li> <li>If no app is selected, it loads LiveContainerSwiftUI.</li> </ul> <h3>LiveContainerSwiftUI</h3> <ul> <li>SwiftUI rewrite of LiveContainerUI (by @hugeBlack)</li> <li>Lanaguage file <code>Localizable.xcstrings</code> is in here for multilingual support</li> </ul> <h3>TweakLoader</h3> <ul> <li>A simple tweak injector, which loads CydiaSubstrate and load tweaks.</li> <li>Injected to every app you install in LiveContainer.</li> </ul> <h3>AltStoreTweak</h3> <ul> <li>The tweak that got injected into SideStore/AltStore to retrieve certificate from it everytime it launches.</li> </ul> <h3>ZSign</h3> <ul> <li>The app signer shipped with LiveContainer.</li> <li>Originally made by <a href="https://github.com/zhlynn/zsign">zhlynn</a>.</li> <li>LiveContainer uses <a href="https://github.com/khcrysalis/Feather">Feather's</a> version of ZSign modified by hcrysalis.</li> <li>Changes are made to meet LiveContainer's need.</li> </ul> <h2>How does it work?</h2> <h3>Patching guest executable</h3> <ul> <li>Patch <code>__PAGEZERO</code> segment: <ul> <li>Change <code>vmaddr</code> to <code>0xFFFFC000</code> (<code>0x100000000 - 0x4000</code>)</li> <li>Change <code>vmsize</code> to <code>0x4000</code></li> </ul> </li> <li>Change <code>MH_EXECUTE</code> to <code>MH_DYLIB</code>.</li> <li>Inject a load command to load <code>TweakLoader.dylib</code></li> </ul> <h3>Patching <code>@executable_path</code></h3> <ul> <li>Call <code>_NSGetExecutablePath</code> with an invalid buffer pointer input -&gt; SIGSEGV</li> <li>Do some <a href="https://github.com/khanhduytran0/LiveContainer/raw/5ef1e6a/main.m#L74-L115">magic stuff</a> to overwrite the contents of executable_path.</li> </ul> <h3>Patching <code>NSBundle.mainBundle</code></h3> <ul> <li>This property is overwritten with the guest app's bundle.</li> </ul> <h3>Bypassing Library Validation</h3> <ul> <li>JIT is optional to bypass codesigning. In JIT-less mode, all executables are signed so this does not apply.</li> <li>Derived from <a href="https://blog.xpnsec.com/restoring-dyld-memory-loading">Restoring Dyld Memory Loading</a></li> </ul> <h3>dlopening the executable</h3> <ul> <li>Call <code>dlopen</code> with the guest app's executable</li> <li>TweakLoader loads all tweaks in the selected folder</li> <li>Find the entry point</li> <li>Jump to the entry point</li> <li>The guest app's entry point calls <code>UIApplicationMain</code> and start up like any other iOS apps.</li> </ul> <h3>Multi-Account support &amp; Keychain Semi-Separation</h3> <p><a href="https://raw.githubusercontent.com/khanhduytran0/LiveContainer/main/entitlements.xml">3 keychain access groups</a> are created and LiveContainer allocates them to each container of same app. So you can create 3 container with different keychain access groups.</p> <h4>Why only 3?</h4> <p>The <a href="https://github.com/hugeBlack/LiveContainer/raw/256keychainAccessGroup/entitlements.xml">original thought was 256</a>, but due to a <a href="https://github.com/SideStore/SideStore/issues/782">SideStore bug</a> (latest AltStore don't have it), we can only declare 3 keychain access groups before SideStore fails to sign. So the limit is 3.</p> <h2>Limitations</h2> <ul> <li>Entitlements from the guest app are not applied to the host app. This isn't a big deal since sideloaded apps requires only basic entitlements.</li> <li>App Permissions are globally applied.</li> <li>Guest app containers are not sandboxed. This means one guest app can access other guest apps' data.</li> <li>App extensions aren't supported. they cannot be registered because: LiveContainer is sandboxed, SpringBoard doesn't know what apps are installed in LiveContainer, and they take up App ID.</li> <li>Only one guest app can run at a time. This is much more like 3 apps limit where you have to disable an app to run another (switching between app in LiveContainer is instant).</li> <li>Remote push notification might not work. <del>If you have a paid developer account then you don't even have to use LiveContainer</del></li> <li>Querying custom URL schemes might not work(?)</li> </ul> <h2>TODO</h2> <ul> <li>Use ChOma instead of custom MachO parser</li> </ul> <h2>License</h2> <p><a href="https://github.com/khanhduytran0/LiveContainer/raw/main/LICENSE">Apache License 2.0</a></p> <h2>Credits</h2> <ul> <li><a href="https://blog.xpnsec.com/restoring-dyld-memory-loading">xpn's blogpost: Restoring Dyld Memory Loading</a></li> <li><a href="https://github.com/pinauten/PatchfinderUtils/raw/master/Sources/CFastFind/CFastFind.c">LinusHenze's CFastFind</a>: <a href="https://github.com/pinauten/PatchfinderUtils/raw/master/LICENSE">MIT license</a></li> <li><a href="https://github.com/facebook/fishhook">fishhook</a>: <a href="https://github.com/facebook/fishhook/raw/main/LICENSE">BSD 3-Clause license</a></li> <li><a href="https://gist.github.com/saturngod/1224648">MBRoundProgressView</a></li> <li>@haxi0 for icon</li> <li>@Vishram1123 for the initial shortcut implementation.</li> <li>@hugeBlack for SwiftUI contribution</li> <li>@Staubgeborener for automatic AltStore/SideStore source updater</li> <li>@fkunn1326 for improved app hiding</li> <li>@slds1 for dynamic color feature</li> </ul> \ No newline at end of file diff --git a/c-objdump/daily/index.xml b/c-objdump/daily/index.xml index 9ecf98d0fa9..576416abb59 100644 --- a/c-objdump/daily/index.xml +++ b/c-objdump/daily/index.xml @@ -1,7 +1,7 @@ GitHub C-ObjDump Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:29:20Z + 2024-12-20T01:29:16Z Daily Trending of C-ObjDump in GitHub \ No newline at end of file diff --git a/c/daily/index.xml b/c/daily/index.xml index 4b0869d0930..7b845443676 100644 --- a/c/daily/index.xml +++ b/c/daily/index.xml @@ -1,7 +1,21 @@ GitHub C Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:29:16Z + 2024-12-20T01:29:07Z Daily Trending of C in GitHub + + KreitinnSoftware/MiceWine-Application + 2024-12-20T01:29:07Z + tag:github.com,2024-12-20:/KreitinnSoftware/MiceWine-Application + + <p>MiceWine is a project that aims to run Windows applications and games on Android smartphones.</p><hr><h2>MiceWine Emulator</h2> <p>MiceWine is a project that aims to run Windows applications and games on Android smartphones.</p> <p>It uses a customized build of Wine compiled for Android and Box64 to run in the best possible way.</p> <p>Actually in constant development.</p> <p>It's use a XServer based on Termux-X11</p> <h3>Compatible Android Versions</h3> <p>Support Android 10+</p> <h3>Compatible GPUs</h3> <table> <thead> <tr> <th>GPU</th> <th>Support</th> <th>Driver</th> </tr> </thead> <tbody> <tr> <td>Adreno 7xx</td> <td>Supported</td> <td>Turnip/Zink</td> </tr> <tr> <td>Adreno 6xx</td> <td>Supported</td> <td>Turnip/Zink</td> </tr> <tr> <td>Others</td> <td>Parcially Supported</td> <td>Native/Zink (Experimental)</td> </tr> </tbody> </table> <p>About Native Vulkan on Non-Adreno GPUs is Experimental, Require Some Testing</p> <h2>Third Party Open Source Applications:</h2> <ul> <li><a href="https://github.com/ptitSeb/box64">Box64</a></li> <li><a href="https://gitlab.winehq.org/wine/wine">WineHQ</a></li> <li><a href="https://github.com/termux/termux-x11">Termux-X11</a></li> <li><a href="https://gitlab.freedesktop.org/mesa/mesa">Mesa</a></li> </ul> + + + ClassiCube/ClassiCube + 2024-12-20T01:29:07Z + tag:github.com,2024-12-20:/ClassiCube/ClassiCube + + <p>Custom Minecraft Classic / ClassiCube client written in C from scratch (formerly ClassicalSharp in C#)</p><hr><p>ClassiCube is a custom Minecraft Classic compatible client written in C from scratch.<br></p> <blockquote> <p>[!IMPORTANT] <strong>ClassiCube is not affiliated with (or supported by) Mojang AB, Minecraft, or Microsoft in any way.</strong> <br><br> <strong>ClassiCube is not trying to replicate modern Minecraft.</strong><br> <strong>It will never support survival, Minecraft accounts, or modern Minecraft servers.</strong></p> </blockquote> <h1>What ClassiCube is</h1> <p>ClassiCube aims to replicate the 2009 Minecraft Classic client while offering <strong>optional</strong> enhancements to improve gameplay. ClassiCube can run on <a href="https://raw.githubusercontent.com/ClassiCube/ClassiCube/master/#supported-systems">many systems</a>, including desktop, web, mobile, and even some consoles.</p> <details> <summary><b>Features (click to expand)</b></summary> <ul> <li>Much better performance and minimal memory usage compared to original Minecraft Classic</li> <li>Optional enhancements including custom blocks, models, and environment colors</li> <li>Partially supports some features of Minecraft Classic versions before 0.30</li> <li>Works with effectively all graphics cards that support OpenGL or Direct3D 9</li> <li>Runs on Windows, macOS, Linux, Android, iOS, and in a web browser</li> <li>Also runs on OpenBSD, FreeBSD, NetBSD, Solaris, Haiku, IRIX, SerenityOS</li> <li>Although in various stages of early development, also runs on various consoles</li> </ul> </details> <p>You can <strong>download ClassiCube</strong> <a href="https://www.classicube.net/download/">here</a> and the very latest builds <a href="https://www.classicube.net/nightlies/">here</a>.</p> <p><img src="https://github.com/ClassiCube/ClassiCube/assets/6509348/eedee53f-f53e-456f-b51c-92c62079eee0" alt="classic"></p> <p><img src="https://github.com/ClassiCube/ClassiCube/assets/6509348/b2fe0e2b-5d76-41ab-909f-048d0ad15f37" alt="enhanced"></p> <h1>We need your help</h1> <p>ClassiCube strives to replicate the original Minecraft Classic experience by <strong>strictly adhering to <a href="https://en.wikipedia.org/wiki/Clean_room_design">clean room</a> reverse engineering approach</strong>.</p> <p>If you're interested in documenting or verifying the behaviour of the original Minecraft Classic, please get in contact on the <a href="https://classicube.net/discord">ClassiCube Discord</a></p> <h1>How to play</h1> <p>Initially, you will need to run ClassiCube.exe to download the required assets from minecraft.net and classicube.net.<br> Just click 'OK' to the dialog menu that appears when you start the launcher.</p> <blockquote> <p><strong>Note:</strong> When running from within VirtualBox, disable Mouse Integration, otherwise the in-game camera won't work properly.</p> </blockquote> <p><strong>Singleplayer mode</strong> Run ClassiCube.exe, then click Singleplayer at the main menu.</p> <p><strong>Multiplayer mode</strong> Run ClassiCube.exe. You can connect to LAN/locally hosted servers, and classicube.net servers if you have a <a href="https://www.classicube.net/">ClassiCube account</a>.</p> <h4><em>Stuck on OpenGL 1.1?</em></h4> <p>The most common reason for being stuck on OpenGL 1.1 is non-working GPU drivers - so if possible, you should try either installing or updating the drivers for your GPU.</p> <p>Otherwise:</p> <ul> <li>On Windows, you can still run the OpenGL build of ClassiCube anyways. <br> (You can try downloading and using the MESA software renderer from <a href="http://download.qt.io/development_releases/prebuilt/llvmpipe/windows/">here</a> for slightly better performance though)</li> <li>On other operating systems, you will have to <a href="https://raw.githubusercontent.com/ClassiCube/ClassiCube/master/#Compiling">compile the game yourself</a>. <br> Don't forget to add <code>-DCC_BUILD_GL11</code> to the compilation command line so that the compiled game supports OpenGL 1.1.</li> </ul> <h1>Supported systems</h1> <p>ClassiCube runs on:</p> <ul> <li>Windows - 95 and later</li> <li>macOS - 10.5 or later (can be compiled for 10.3/10.4 though)</li> <li>Linux - needs <code>libcurl</code> and <code>libopenal</code></li> <li>Android - 2.3 or later</li> <li>iOS - 8.0 or later</li> <li>Most web browsers (even runs on IE11)</li> </ul> <p>And also runs on:</p> <ul> <li>Raspberry Pi - needs <code>libcurl</code> and <code>libopenal</code></li> <li>FreeBSD - needs <code>libexecinfo</code>, <code>curl</code> and <code>openal-soft</code> packages (can <a href="https://www.classicube.net/download/#dl-fbsd">download from here</a>)</li> <li>NetBSD - needs <code>libexecinfo</code>, <code>curl</code> and <code>openal-soft</code> packages (can <a href="https://www.classicube.net/download/#dl-nbsd">download from here</a>)</li> <li>OpenBSD - needs <code>libexecinfo</code>, <code>curl</code> and <code>openal</code> packages</li> <li>Solaris - needs <code>curl</code> and <code>openal</code> packages</li> <li>Haiku - needs <code>openal</code> package (if you have a GitHub account, can <a href="https://github.com/ClassiCube/ClassiCube/actions/workflows/build_haiku.yml">download from here</a>)</li> <li>BeOS - untested on actual hardware</li> <li>IRIX - needs <code>curl</code> and <code>openal</code> packages</li> <li>SerenityOS - needs <code>SDL2</code></li> <li>Classic Mac OS (System 7 and later)</li> <li>Dreamcast - unfinished, but usable (can <a href="https://www.classicube.net/download/dreamcast">download from here</a>)</li> <li>Saturn - unfinished, major rendering and <strong>stability issues</strong> (can <a href="https://www.classicube.net/download/saturn">download from here</a>)</li> <li>Switch - unfinished, but usable (can <a href="https://www.classicube.net/download/switch">download from here</a>)</li> <li>Wii U - unfinished, major issues, <strong>broken on real hardware</strong> (can <a href="https://www.classicube.net/download/wiiu">download from here</a>)</li> <li>Wii - unfinished, but usable (can <a href="https://www.classicube.net/download/wii">download from here</a>)</li> <li>GameCube - unfinished, but usable (can <a href="https://www.classicube.net/download/gamecube">download from here</a>)</li> <li>Nintendo 64 - unfinished, moderate rendering issues (can <a href="https://www.classicube.net/download/n64">download from here</a>)</li> <li>3DS - unfinished, but usable (can <a href="https://www.classicube.net/download/3ds">download from here</a>)</li> <li>DS/DSi - unfinished, rendering issues (can <a href="https://www.classicube.net/download/nds">download from here</a>)</li> <li>PS Vita - unfinished, rendering issues (can <a href="https://www.classicube.net/download/vita">download from here</a>)</li> <li>PSP - unfinished, rendering issues (can <a href="https://www.classicube.net/download/psp">download from here</a>)</li> <li>PS3 - unfinished, rendering issues (can <a href="https://www.classicube.net/download/ps3">download from here</a>)</li> <li>PS2 - unfinished, major rendering and <strong>stability issues</strong> (can <a href="https://www.classicube.net/download/ps2">download from here</a>)</li> <li>PS1 - unfinished, major rendering and <strong>stability issues</strong> (can <a href="https://www.classicube.net/download/ps1">download from here</a>)</li> <li>Xbox 360 - completely unfinished, <strong>broken on real hardware</strong> (can <a href="https://www.classicube.net/download/360">download from here</a>)</li> <li>Xbox - unfinished, major rendering issues (can <a href="https://www.classicube.net/download/xbox">download from here</a>)</li> </ul> <h1>Compiling</h1> <p><em>Note: The instructions below automatically compile ClassiCube with the recommended defaults for the platform. <br> If you (not recommended) want to override the defaults (e.g. to compile OpenGL build on Windows), see <a href="https://raw.githubusercontent.com/ClassiCube/ClassiCube/master/doc/overriding-defaults.md">here</a> for details.</em></p> <h2>Compiling - Windows</h2> <h5>Using Visual Studio</h5> <ol> <li>Open ClassiCube.sln <em>(File -&gt; Open -&gt; Project/Solution)</em></li> <li>Compile/Build it <em>(Build -&gt; Build Solution)</em>.</li> </ol> <p>If you get a <code>The Windows SDK version 5.1 was not found</code> compilation error, <a href="https://raw.githubusercontent.com/ClassiCube/ClassiCube/master/doc/compile-fixes.md#visual-studio-unsupported-platform-toolset">see here for how to fix</a></p> <h5>Using Visual Studio (command line)</h5> <ol> <li>Use 'Developer Tools for Visual Studio' from Start Menu</li> <li>Navigate to the directory with ClassiCube's source code</li> <li>Run <code>cl.exe *.c /link user32.lib gdi32.lib winmm.lib dbghelp.lib shell32.lib comdlg32.lib /out:ClassiCube.exe</code></li> </ol> <h5>Using MinGW-w64</h5> <p>Assuming that you used the installer from <a href="https://sourceforge.net/projects/mingw-w64/">https://sourceforge.net/projects/mingw-w64/</a> :</p> <ol> <li>Install MinGW-W64</li> <li>Use either <em>Run Terminal</em> from Start Menu or run <em>mingw-w64.bat</em> in the installation folder</li> <li>Navigate to the directory with ClassiCube's source code</li> <li>Run <code>gcc -fno-math-errno *.c -o ClassiCube.exe -mwindows -lwinmm</code></li> </ol> <h5>Using MinGW</h5> <p>Assuming that you used the installer from <a href="https://osdn.net/projects/mingw/">https://osdn.net/projects/mingw/</a> :</p> <ol> <li>Install MinGW. You need mingw32-base-bin and msys-base-bin packages.</li> <li>Run <em>msys.bat</em> in the <em>C:\MinGW\msys\1.0</em> folder.</li> <li>Navigate to the directory with ClassiCube's source code</li> <li>Run <code>gcc -fno-math-errno *.c -o ClassiCube.exe -mwindows -lwinmm</code></li> </ol> <h5>Using TCC (Tiny C Compiler)</h5> <p>Setting up TCC:</p> <ol> <li>Download and extract <code>tcc-0.9.27-win64-bin.zip</code> from <a href="https://bellard.org/tcc/">https://bellard.org/tcc/</a></li> <li>Download <code>winapi-full-for-0.9.27.zip</code> from <a href="https://bellard.org/tcc/">https://bellard.org/tcc/</a></li> <li>Copy <code>winapi</code> folder and <code>_mingw_dxhelper.h</code> from <code>winapi-full-for-0.9.27.zip</code> into TCC's <code>include</code> folder</li> </ol> <p>Compiling with TCC:</p> <ol> <li>Navigate to the directory with ClassiCube's source code</li> <li>In <code>ExtMath.c</code>, change <code>fabsf</code> to <code>fabs</code> and <code>sqrtf</code> to <code>sqrt</code></li> <li>Run <code>tcc.exe -o ClassiCube.exe *.c -lwinmm -lgdi32 -luser32 -lcomdlg32 -lshell32</code><br> (Note: You may need to specify the full path to <code>tcc.exe</code> instead of just <code>tcc.exe</code>)</li> </ol> <h2>Compiling - Linux</h2> <h5>Using gcc/clang</h5> <ol> <li>Install X11, XInput2, and OpenGL development libraries if necessary. <br> For Ubuntu, these are the <code>libx11-dev</code>, <code>libxi-dev</code> and <code>libgl1-mesa-dev</code> packages</li> <li>Run either: <ul> <li><code>make linux</code> or</li> <li><code>cc -fno-math-errno src/*.c -o ClassiCube -rdynamic -lpthread -lX11 -lXi -lGL -ldl</code></li> </ul> </li> </ol> <h5>Cross compiling for Windows (32 bit):</h5> <ol> <li>Install MinGW-w64 if necessary. (Ubuntu: <code>gcc-mingw-w64</code> package)</li> <li>Run <code>i686-w64-mingw32-gcc -fno-math-errno src/*.c -o ClassiCube.exe -mwindows -lwinmm</code></li> </ol> <h5>Cross compiling for Windows (64 bit):</h5> <ol> <li>Install MinGW-w64 if necessary. (Ubuntu: <code>gcc-mingw-w64</code> package)</li> <li>Run <code>x86_64-w64-mingw32-gcc -fno-math-errno src/*.c -o ClassiCube.exe -mwindows -lwinmm</code></li> </ol> <h5>Raspberry Pi</h5> <p>Although the regular linux compiliation flags will work fine, to take full advantage of the hardware:</p> <p><code>gcc -fno-math-errno src/*.c -o ClassiCube -DCC_BUILD_RPI -rdynamic -lpthread -lX11 -lXi -lEGL -lGLESv2 -ldl</code></p> <h2>Compiling - macOS</h2> <ol> <li>Install a C compiler if necessary. The easiest way of obtaining one is by installing <strong>Xcode</strong>.</li> <li>Run either: <ul> <li><code>make darwin</code> or</li> <li><code>cc -fno-math-errno src/*.c src/*.m -o ClassiCube -framework Cocoa -framework OpenGL -framework IOKit -lobjc</code></li> </ul> </li> </ol> <h5>Using Xcode GUI</h5> <ol> <li>Open the <code>misc/macOS/CCMAC.xcodeproj</code> project in Xcode</li> <li>Compile the project</li> </ol> <h2>Compiling - for Android</h2> <p>NOTE: If you are distributing a modified version, <strong>please change the package ID from <code>com.classicube.android.client</code> to something else</strong> - otherwise Android users won't be able to have both ClassiCube and your modified version installed at the same time on their Android device</p> <h5>Using Android Studio GUI</h5> <p>Open <code>android</code> folder in Android Studio (TODO explain more detailed)</p> <h5>Using command line (gradle)</h5> <p>Run <code>gradlew</code> in android folder (TODO explain more detailed)</p> <h2>Compiling - for iOS</h2> <p>iOS version will have issues as it's incomplete and only tested in iOS Simulator</p> <p>NOTE: If you are distributing a modified version, <strong>please change the bundle ID from <code>com.classicube.ios.client</code> to something else</strong> - otherwise iOS users won't be able to have both ClassiCube and your modified version installed at the same time on their iOS device</p> <h5>Using Xcode GUI</h5> <ol> <li>Open the <code>misc/ios/CCIOS.xcodeproj</code> project in Xcode</li> <li>Compile the project</li> </ol> <h5>Using command line (Xcode)</h5> <p><code>xcodebuild -sdk iphoneos -configuration Debug</code> (TODO explain more detailed)</p> <h2>Compiling - webclient</h2> <ol> <li>Install emscripten if necessary.</li> <li>Run either: <ul> <li><code>make web</code> or</li> <li><code>emcc src/*.c -s ALLOW_MEMORY_GROWTH=1 -s TOTAL_STACK=1Mb --js-library interop_web.js</code></li> </ul> </li> </ol> <p>The generated javascript file has some issues. <a href="https://raw.githubusercontent.com/ClassiCube/ClassiCube/master/doc/compile-fixes.md#webclient-patches">See here for how to fix</a></p> <p>For details on how to integrate the webclient into a website, see <a href="https://raw.githubusercontent.com/ClassiCube/ClassiCube/master/doc/hosting-webclient.md">here</a></p> <details> <summary><h2>Compiling - consoles</h2></summary> <p>All console ports need assistance from someone experienced with homebrew development - if you're interested, please get in contact on the <a href="https://classicube.net/discord">ClassiCube Discord.</a></p> <details> <summary><h3>Nintendo consoles (click to expand)</h3></summary> <h4>Switch</h4> <p>Run <code>make switch</code>. You'll need <a href="https://github.com/switchbrew/libnx">libnx</a> and <a href="https://github.com/devkitPro/mesa">mesa</a></p> <p><strong>NOTE: It is highly recommended that you install the precompiled devkitpro packages from <a href="https://devkitpro.org/wiki/Getting_Started">here</a> - you need the <code>switch-dev</code> group and the <code>switch-mesa switch-glm</code> packages)</strong></p> <h4>Wii U</h4> <p>Run <code>make wiiu</code>. You'll need <a href="https://github.com/devkitPro/wut/">wut</a></p> <p><strong>NOTE: It is highly recommended that you install the precompiled devkitpro packages from <a href="https://devkitpro.org/wiki/Getting_Started">here</a> - you need the <code>wiiu-dev</code> group)</strong></p> <h4>3DS</h4> <p>Run <code>make 3ds</code>. You'll need <a href="https://github.com/devkitPro/libctru">libctru</a></p> <p><strong>NOTE: It is highly recommended that you install the precompiled devkitpro packages from <a href="https://devkitpro.org/wiki/Getting_Started">here</a> - you need the <code>3ds-dev</code> group)</strong></p> <h4>Wii</h4> <p>Run <code>make wii</code>. You'll need <a href="https://github.com/devkitPro/libogc">libogc</a></p> <p><strong>NOTE: It is highly recommended that you install the precompiled devkitpro packages from <a href="https://devkitpro.org/wiki/Getting_Started">here</a> - you need the <code>wii-dev</code> group)</strong></p> <h4>GameCube</h4> <p>Run <code>make gamecube</code>. You'll need <a href="https://github.com/devkitPro/libogc">libogc</a></p> <p><strong>NOTE: It is highly recommended that you install the precompiled devkitpro packages from <a href="https://devkitpro.org/wiki/Getting_Started">here</a> - you need the <code>gamecube-dev</code> group)</strong></p> <h4>Nintendo DS/DSi</h4> <p>Run <code>make ds</code>. You'll need <a href="https://github.com/blocksds/sdk">BlocksDS</a></p> <h4>Nintendo 64</h4> <p>Run <code>make n64</code>. You'll need the opengl branch of <a href="https://github.com/DragonMinded/libdragon/tree/opengl">libdragon</a></p> </details> <details> <summary><h3>Sony consoles (click to expand)</h3></summary> <h4>PlayStation Vita</h4> <p>Run <code>make vita</code>. You'll need <a href="https://vitasdk.org/">vitasdk</a></p> <h4>PlayStation Portable</h4> <p>Run <code>make psp</code>. You'll need <a href="https://github.com/pspdev/pspsdk">pspsdk</a></p> <p><strong>NOTE: It is recommended that you install the precompiled pspsdk version from <a href="https://github.com/pspdev/pspdev/releases">here</a></strong></p> <h4>PlayStation 3</h4> <p>Run <code>make ps3</code>. You'll need <a href="https://github.com/ps3dev/PSL1GHT">PSL1GHT</a></p> <h4>PlayStation 2</h4> <p>Run <code>make ps2</code>. You'll need <a href="https://github.com/ps2dev/ps2sdk">ps2sdk</a></p> <h4>PlayStation 1</h4> <p>Run <code>make ps1</code>. You'll need <a href="https://github.com/Lameguy64/PSn00bSDK/">PSn00bSDK</a></p> </details> <details> <summary><h3>Microsoft consoles (click to expand)</h3></summary> <h4>Xbox 360</h4> <p>Run <code>make 360</code>. You'll need <a href="https://github.com/Free60Project/libxenon">libxenon</a></p> <h4>Xbox (original)</h4> <p>Run <code>make xbox</code>. You'll need <a href="https://github.com/XboxDev/nxdk">nxdk</a></p> </details> <details> <summary><h3>SEGA consoles (click to expand)</h3></summary> <h3>SEGA consoles</h3> <h4>Dreamcast</h4> <p>Run <code>make dreamcast</code>. You'll need <a href="https://github.com/KallistiOS/KallistiOS">KallistiOS</a></p> <h4>Saturn</h4> <p>Run <code>make saturn</code>. You'll need <a href="https://github.com/yaul-org/libyaul">libyaul</a></p> </details> </details> <details> <summary><h2>Compiling - other platforms (click to expand)</h2></summary> <h4>FreeBSD</h4> <ol> <li>Install <code>libxi</code>, <code>libexecinfo</code>, <code>curl</code> and <code>openal-soft</code> packages if needed</li> <li>Run either: <ul> <li><code>make freebsd</code> or</li> <li><code>cc src/*.c -o ClassiCube -I /usr/local/include -L /usr/local/lib -lm -lpthread -lX11 -lXi -lGL -lexecinfo</code></li> </ul> </li> </ol> <h4>OpenBSD</h4> <ol> <li>Install <code>libexecinfo</code>, <code>curl</code> and <code>openal</code> packages if needed</li> <li>Run either: <ul> <li><code>make opensd</code> or</li> <li><code>cc src/*.c -o ClassiCube -I /usr/X11R6/include -I /usr/local/include -L /usr/X11R6/lib -L /usr/local/lib -lm -lpthread -lX11 -lXi -lGL -lexecinfo</code></li> </ul> </li> </ol> <h4>NetBSD</h4> <ol> <li>Install <code>libexecinfo</code>, <code>curl</code> and <code>openal-soft</code> packages if needed</li> <li>Run either: <ul> <li><code>make netbsd</code> or</li> <li><code>cc src/*.c -o ClassiCube -I /usr/X11R7/include -I /usr/pkg/include -L /usr/X11R7/lib -L /usr/pkg/lib -lpthread -lX11 -lXi -lGL -lexecinfo</code></li> </ul> </li> </ol> <h4>DragonflyBSD</h4> <ol> <li>Install <code>libxi</code>, <code>libexecinfo</code>, <code>curl</code> and <code>openal-soft</code> packages if needed</li> <li>Run either: <ul> <li><code>make dragonfly</code> or</li> <li><code>cc src/*.c -o ClassiCube -I /usr/local/include -L /usr/local/lib -lm -lpthread -lX11 -lXi -lGL -lexecinfo</code></li> </ul> </li> </ol> <h4>Solaris</h4> <ol> <li>Install required packages if needed</li> <li>Run either: <ul> <li><code>make sunos</code> or</li> <li><code>gcc -fno-math-errno src/*.c -o ClassiCube -lsocket -lX11 -lXi -lGL</code></li> </ul> </li> </ol> <h4>Haiku</h4> <ol> <li>Install <code>gcc</code>, <code>haiku_devel</code>, <code>openal_devel</code> packages if needed</li> <li>Run either: <ul> <li><code>make haiku</code> or</li> <li><code>cc -fno-math-errno src/*.c src/*.cpp -o ClassiCube -lGL -lnetwork -lstdc++ -lbe -lgame -ltracker</code></li> </ul> </li> </ol> <h4>BeOS</h4> <ol> <li>Install a C compiler</li> <li>Run either: <ul> <li><code>make beos</code> or</li> <li><code>cc -fno-math-errno src/*.c src/*.cpp -o ClassiCube -lGL -lbe -lgame -ltracker</code></li> </ul> </li> </ol> <h4>IRIX</h4> <ol> <li>Install required packages if needed</li> <li>Run either: <ul> <li><code>make irix</code> or</li> <li>gcc -fno-math-errno src/*.c -o ClassiCube -lGL -lX11 -lXi -lpthread -ldl`</li> </ul> </li> </ol> <h4>SerenityOS</h4> <ol> <li>Install SDL2 port if needed</li> <li>Run either: <ul> <li><code>make serenityos</code> or</li> <li><code>cc src/*.c -o ClassiCube -lgl -lSDL2</code></li> </ul> </li> </ol> <h4>Classic Mac OS</h4> <ol> <li>Install Retro68</li> <li>Run either <ul> <li><code>make macclassic_68k</code> (For a M68k build)</li> <li><code>make macclassic_ppc</code> (For a PPC build)</li> </ul> </li> </ol> <p>The PowerPC build will usually perform much better</p> <h4>Other systems</h4> <p>You'll have to write the necessary code. You should read <code>portability.md</code> in doc folder.</p> </details> <h2>Documentation</h2> <p>Functions and variables in .h files are mostly documented.</p> <p>Further information (e.g. style) for ClassiCube's source code can be found in the doc and misc folders.</p> <h4>Known compilation errors</h4> <p><a href="https://raw.githubusercontent.com/ClassiCube/ClassiCube/master/doc/compile-fixes.md#common-compilation-errors">Fixes for compilation errors when using musl or old glibc for C standard library</a></p> <h4>Tips</h4> <ul> <li> <p>Press escape (after joining a world) or pause to switch to the pause menu.</p> </li> <li> <p>Pause menu -&gt; Options -&gt; Controls lists all of the key combinations used by the client.</p> </li> <li> <p>Note that toggling 'vsync' to on will minimise CPU usage, while off will maximimise chunk loading speed.</p> </li> <li> <p>Press F to cycle view distance. Lower view distances can improve performance.</p> </li> <li> <p>If the server has disabled hacks, key combinations such as fly and speed will not do anything.</p> </li> <li> <p>To see the list of built in commands, type <code>/client</code>.</p> </li> <li> <p>To see help for a given built in command, type <code>/client help &lt;command name&gt;</code>.</p> </li> </ul> <details> <summary><h2>Open source technologies (click to expand)</h2></summary> <ul> <li><a href="https://curl.se/">curl</a> - HTTP/HTTPS for linux and macOS</li> <li><a href="https://www.freetype.org/">FreeType</a> - Font handling for all platforms</li> <li><a href="https://gcc.gnu.org/">GCC</a> - Compiles client for linux</li> <li><a href="http://mingw-w64.org/doku.php">MinGW-w64</a> - Compiles client for windows</li> <li><a href="https://clang.llvm.org/">Clang</a> - Compiles client for macOS</li> <li><a href="https://emscripten.org/">Emscripten</a> - Compiles client for web</li> <li><a href="https://renderdoc.org/">RenderDoc</a> - Graphics debugging</li> <li><a href="https://www.bearssl.org/">BearSSL</a> - SSL/TLS support on consoles</li> <li><a href="https://github.com/switchbrew/libnx">libnx</a> - Backend for Switch</li> <li><a href="https://github.com/Ryujinx/Ryujinx">Ryujinx</a> - Emulator used to test Switch port</li> <li><a href="https://github.com/devkitPro/wut/">wut</a> - Backend for Wii U</li> <li><a href="https://github.com/cemu-project/Cemu">Cemu</a> - Emulator used to test Wii U port</li> <li><a href="https://github.com/devkitPro/libctru">libctru</a> - Backend for 3DS</li> <li><a href="https://github.com/devkitPro/citro3d">citro3D</a> - Rendering backend for 3DS</li> <li><a href="https://github.com/citra-emu/citra">Citra</a> - Emulator used to test 3DS port</li> <li><a href="https://github.com/devkitPro/libogc">libogc</a> - Backend for Wii and GameCube</li> <li><a href="https://github.com/devkitPro/libfat">libfat</a> - Filesystem backend for Wii/GC</li> <li><a href="https://github.com/dolphin-emu/dolphin">Dolphin</a> - Emulator used to test Wii/GC port</li> <li><a href="https://github.com/DragonMinded/libdragon">libdragon</a> - Backend for Nintendo 64</li> <li><a href="https://github.com/ares-emulator/ares">ares</a> - Emulator used to test Nintendo 64 port</li> <li><a href="https://github.com/blocksds/sdk">BlocksDS</a> - Backend for Nintendo DS</li> <li><a href="https://github.com/melonDS-emu/melonDS">melonDS</a> - Emulator used to test Nintendo DS port</li> <li><a href="https://github.com/vitasdk">vitasdk</a> - Backend for PS Vita</li> <li><a href="https://github.com/Vita3K/Vita3K">Vita3K</a> - Emulator used to test Vita port</li> <li><a href="https://github.com/pspdev/pspsdk">pspsdk</a> - Backend for PSP</li> <li><a href="https://github.com/hrydgard/ppsspp">PPSSPP</a> - Emulator used to test PSP port</li> <li><a href="https://github.com/ps3dev/PSL1GHT">PSL1GHT</a> - Backend for PS3</li> <li><a href="https://github.com/RPCS3/rpcs3">RPCS3</a> - Emulator used to test PS3 port</li> <li><a href="https://github.com/ps2dev/ps2sdk">ps2sdk</a> - Backend for PS2</li> <li><a href="https://github.com/PCSX2/pcsx2">PCSX2</a> - Emulator used to test PS2 port</li> <li><a href="https://github.com/Lameguy64/PSn00bSDK/">PSn00bSDK</a> - Backend for PS1</li> <li><a href="https://github.com/stenzek/duckstation">duckstation</a> - Emulator used to test PS1 port</li> <li><a href="https://github.com/Free60Project/libxenon">libxenon</a> - Backend for Xbox 360</li> <li><a href="https://github.com/XboxDev/nxdk">nxdk</a> - Backend for Xbox</li> <li><a href="https://github.com/xemu-project/xemu">xemu</a> - Emulator used to test Xbox port</li> <li><a href="https://github.com/Cxbx-Reloaded/Cxbx-Reloaded">cxbx-reloaded</a> - Emulator used to test Xbox port</li> <li><a href="https://github.com/KallistiOS/KallistiOS">KallistiOS</a> - Backend for Dreamcast</li> <li><a href="https://github.com/Kazade/GLdc">GLdc</a> - Basis of rendering backend for Dreamcast</li> <li><a href="https://github.com/flyinghead/flycast">flycast</a> - Emulator used to test Dreamcast port</li> <li><a href="https://github.com/yaul-org/libyaul">libyaul</a> - Backend for Saturn</li> <li><a href="https://mednafen.github.io/">mednafen</a> - Emulator used to test Saturn port</li> </ul> </details> <h2>Sound Credits</h2> <p>ClassiCube uses sounds from <a href="https://freesound.org">Freesound.org</a><br> Full credits are listed in <a href="https://raw.githubusercontent.com/ClassiCube/ClassiCube/master/doc/sound-credits.md">doc/sound-credits.md</a></p> + \ No newline at end of file diff --git a/c2hs-haskell/daily/index.xml b/c2hs-haskell/daily/index.xml index f112688c678..269012b44f4 100644 --- a/c2hs-haskell/daily/index.xml +++ b/c2hs-haskell/daily/index.xml @@ -1,7 +1,7 @@ GitHub C2hs Haskell Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:29:20Z + 2024-12-20T01:29:16Z Daily Trending of C2hs Haskell in GitHub \ No newline at end of file diff --git a/cabal-config/daily/index.xml b/cabal-config/daily/index.xml index 73333b0801c..ba12f638e7b 100644 --- a/cabal-config/daily/index.xml +++ b/cabal-config/daily/index.xml @@ -1,7 +1,7 @@ GitHub Cabal Config Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:29:32Z + 2024-12-20T01:29:31Z Daily Trending of Cabal Config in GitHub \ No newline at end of file diff --git a/cadence/daily/index.xml b/cadence/daily/index.xml index b3ca8d665c4..08b0cb4c609 100644 --- a/cadence/daily/index.xml +++ b/cadence/daily/index.xml @@ -1,7 +1,7 @@ GitHub Cadence Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:29:33Z + 2024-12-20T01:29:30Z Daily Trending of Cadence in GitHub \ No newline at end of file diff --git a/cairo/daily/index.xml b/cairo/daily/index.xml index 93c331da9d9..cd58083adb1 100644 --- a/cairo/daily/index.xml +++ b/cairo/daily/index.xml @@ -1,7 +1,7 @@ GitHub Cairo Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:29:33Z + 2024-12-20T01:29:31Z Daily Trending of Cairo in GitHub \ No newline at end of file diff --git a/cap'n-proto/daily/index.xml b/cap'n-proto/daily/index.xml index fcffeeeed35..bc7adbda66b 100644 --- a/cap'n-proto/daily/index.xml +++ b/cap'n-proto/daily/index.xml @@ -1,7 +1,7 @@ GitHub Cap'n Proto Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:29:34Z + 2024-12-20T01:29:32Z Daily Trending of Cap'n Proto in GitHub \ No newline at end of file diff --git a/cartocss/daily/index.xml b/cartocss/daily/index.xml index 4a2ea7fb073..353ad7c30c7 100644 --- a/cartocss/daily/index.xml +++ b/cartocss/daily/index.xml @@ -1,7 +1,7 @@ GitHub CartoCSS Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:29:36Z + 2024-12-20T01:29:34Z Daily Trending of CartoCSS in GitHub \ No newline at end of file diff --git a/ceylon/daily/index.xml b/ceylon/daily/index.xml index 5b4fb4f0cdd..dd375ded7bf 100644 --- a/ceylon/daily/index.xml +++ b/ceylon/daily/index.xml @@ -1,7 +1,7 @@ GitHub Ceylon Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:29:36Z + 2024-12-20T01:29:35Z Daily Trending of Ceylon in GitHub \ No newline at end of file diff --git a/chapel/daily/index.xml b/chapel/daily/index.xml index fea1ea28811..03bb47c6fda 100644 --- a/chapel/daily/index.xml +++ b/chapel/daily/index.xml @@ -1,7 +1,7 @@ GitHub Chapel Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:29:35Z + 2024-12-20T01:29:35Z Daily Trending of Chapel in GitHub \ No newline at end of file diff --git a/charity/daily/index.xml b/charity/daily/index.xml index 563f0946132..d30eb98ecf9 100644 --- a/charity/daily/index.xml +++ b/charity/daily/index.xml @@ -1,7 +1,7 @@ GitHub Charity Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:29:37Z + 2024-12-20T01:29:37Z Daily Trending of Charity in GitHub \ No newline at end of file diff --git a/chuck/daily/index.xml b/chuck/daily/index.xml index 6eaf4b56e34..7314b508d00 100644 --- a/chuck/daily/index.xml +++ b/chuck/daily/index.xml @@ -1,7 +1,7 @@ GitHub ChucK Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:29:38Z + 2024-12-20T01:29:36Z Daily Trending of ChucK in GitHub \ No newline at end of file diff --git a/cil/daily/index.xml b/cil/daily/index.xml index 35216d78306..7c6fa019da4 100644 --- a/cil/daily/index.xml +++ b/cil/daily/index.xml @@ -1,7 +1,7 @@ GitHub CIL Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:29:37Z + 2024-12-20T01:29:36Z Daily Trending of CIL in GitHub \ No newline at end of file diff --git a/cirru/daily/index.xml b/cirru/daily/index.xml index b96e5d06ee3..36af793ee08 100644 --- a/cirru/daily/index.xml +++ b/cirru/daily/index.xml @@ -1,7 +1,7 @@ GitHub Cirru Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:29:38Z + 2024-12-20T01:29:39Z Daily Trending of Cirru in GitHub \ No newline at end of file diff --git a/clarion/daily/index.xml b/clarion/daily/index.xml index 4b7e4eda1ba..1278d263bb4 100644 --- a/clarion/daily/index.xml +++ b/clarion/daily/index.xml @@ -1,7 +1,7 @@ GitHub Clarion Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:29:39Z + 2024-12-20T01:29:38Z Daily Trending of Clarion in GitHub \ No newline at end of file diff --git a/clarity/daily/index.xml b/clarity/daily/index.xml index dba5e650ec8..77a05ac5f7f 100644 --- a/clarity/daily/index.xml +++ b/clarity/daily/index.xml @@ -1,7 +1,7 @@ GitHub Clarity Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:29:39Z + 2024-12-20T01:29:37Z Daily Trending of Clarity in GitHub \ No newline at end of file diff --git a/classic-asp/daily/index.xml b/classic-asp/daily/index.xml index 8e186c075bf..f5ffcfc5878 100644 --- a/classic-asp/daily/index.xml +++ b/classic-asp/daily/index.xml @@ -1,7 +1,7 @@ GitHub Classic ASP Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:28:58Z + 2024-12-20T01:28:48Z Daily Trending of Classic ASP in GitHub \ No newline at end of file diff --git a/clean/daily/index.xml b/clean/daily/index.xml index 4ea13d70683..01daa293fc0 100644 --- a/clean/daily/index.xml +++ b/clean/daily/index.xml @@ -1,7 +1,7 @@ GitHub Clean Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:29:41Z + 2024-12-20T01:29:39Z Daily Trending of Clean in GitHub \ No newline at end of file diff --git a/click/daily/index.xml b/click/daily/index.xml index 3bb928610e7..809a202be97 100644 --- a/click/daily/index.xml +++ b/click/daily/index.xml @@ -1,7 +1,7 @@ GitHub Click Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:29:40Z + 2024-12-20T01:29:40Z Daily Trending of Click in GitHub \ No newline at end of file diff --git a/clips/daily/index.xml b/clips/daily/index.xml index 220ba9a6332..f31a0722fd9 100644 --- a/clips/daily/index.xml +++ b/clips/daily/index.xml @@ -1,7 +1,7 @@ GitHub CLIPS Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:29:40Z + 2024-12-20T01:29:40Z Daily Trending of CLIPS in GitHub \ No newline at end of file diff --git a/clojure/daily/index.xml b/clojure/daily/index.xml index 56d4bad7e58..b4649473b6c 100644 --- a/clojure/daily/index.xml +++ b/clojure/daily/index.xml @@ -1,7 +1,7 @@ GitHub Clojure Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:29:41Z + 2024-12-20T01:29:41Z Daily Trending of Clojure in GitHub \ No newline at end of file diff --git a/closure-templates/daily/index.xml b/closure-templates/daily/index.xml index d21d62769a7..d761ea4a02a 100644 --- a/closure-templates/daily/index.xml +++ b/closure-templates/daily/index.xml @@ -1,7 +1,7 @@ GitHub Closure Templates Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:29:42Z + 2024-12-20T01:29:42Z Daily Trending of Closure Templates in GitHub \ No newline at end of file diff --git a/cloud-firestore-security-rules/daily/index.xml b/cloud-firestore-security-rules/daily/index.xml index ba5ef9d57ca..477676a5974 100644 --- a/cloud-firestore-security-rules/daily/index.xml +++ b/cloud-firestore-security-rules/daily/index.xml @@ -1,7 +1,7 @@ GitHub Cloud Firestore Security Rules Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:29:42Z + 2024-12-20T01:29:42Z Daily Trending of Cloud Firestore Security Rules in GitHub \ No newline at end of file diff --git a/cmake/daily/index.xml b/cmake/daily/index.xml index 846f0bf6230..d2a4c26cd4a 100644 --- a/cmake/daily/index.xml +++ b/cmake/daily/index.xml @@ -1,7 +1,7 @@ GitHub CMake Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:29:43Z + 2024-12-20T01:29:43Z Daily Trending of CMake in GitHub \ No newline at end of file diff --git a/cobol/daily/index.xml b/cobol/daily/index.xml index 95ec4adfa4d..79b8283bac1 100644 --- a/cobol/daily/index.xml +++ b/cobol/daily/index.xml @@ -1,7 +1,7 @@ GitHub COBOL Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:29:42Z + 2024-12-20T01:29:43Z Daily Trending of COBOL in GitHub \ No newline at end of file diff --git a/codeowners/daily/index.xml b/codeowners/daily/index.xml index 5bd6ff8d2f5..95761be1c97 100644 --- a/codeowners/daily/index.xml +++ b/codeowners/daily/index.xml @@ -1,7 +1,7 @@ GitHub CODEOWNERS Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:29:44Z + 2024-12-20T01:29:44Z Daily Trending of CODEOWNERS in GitHub \ No newline at end of file diff --git a/codeql/daily/index.xml b/codeql/daily/index.xml index 4275c81f164..914dd4761ff 100644 --- a/codeql/daily/index.xml +++ b/codeql/daily/index.xml @@ -1,7 +1,7 @@ GitHub CodeQL Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:29:44Z + 2024-12-20T01:29:44Z Daily Trending of CodeQL in GitHub \ No newline at end of file diff --git a/coffeescript/daily/index.xml b/coffeescript/daily/index.xml index ec49750afe1..2b6f26605d2 100644 --- a/coffeescript/daily/index.xml +++ b/coffeescript/daily/index.xml @@ -1,7 +1,7 @@ GitHub CoffeeScript Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:29:45Z + 2024-12-20T01:29:45Z Daily Trending of CoffeeScript in GitHub \ No newline at end of file diff --git a/coldfusion-cfc/daily/index.xml b/coldfusion-cfc/daily/index.xml index f1b5a0c2dd1..20f1dcfe920 100644 --- a/coldfusion-cfc/daily/index.xml +++ b/coldfusion-cfc/daily/index.xml @@ -1,7 +1,7 @@ GitHub ColdFusion CFC Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:29:46Z + 2024-12-20T01:29:46Z Daily Trending of ColdFusion CFC in GitHub \ No newline at end of file diff --git a/coldfusion/daily/index.xml b/coldfusion/daily/index.xml index 1d4adf536a9..fd071822804 100644 --- a/coldfusion/daily/index.xml +++ b/coldfusion/daily/index.xml @@ -1,7 +1,7 @@ GitHub ColdFusion Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:29:44Z + 2024-12-20T01:29:45Z Daily Trending of ColdFusion in GitHub \ No newline at end of file diff --git a/collada/daily/index.xml b/collada/daily/index.xml index 563ff721076..56911c04dcb 100644 --- a/collada/daily/index.xml +++ b/collada/daily/index.xml @@ -1,7 +1,7 @@ GitHub COLLADA Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:29:46Z + 2024-12-20T01:29:47Z Daily Trending of COLLADA in GitHub \ No newline at end of file diff --git a/common-lisp/daily/index.xml b/common-lisp/daily/index.xml index 52606ecd94d..16f038bd76c 100644 --- a/common-lisp/daily/index.xml +++ b/common-lisp/daily/index.xml @@ -1,7 +1,7 @@ GitHub Common Lisp Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:29:47Z + 2024-12-20T01:29:47Z Daily Trending of Common Lisp in GitHub \ No newline at end of file diff --git a/common-workflow-language/daily/index.xml b/common-workflow-language/daily/index.xml index be0da357504..71f4bb6b231 100644 --- a/common-workflow-language/daily/index.xml +++ b/common-workflow-language/daily/index.xml @@ -1,7 +1,7 @@ GitHub Common Workflow Language Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:29:45Z + 2024-12-20T01:29:47Z Daily Trending of Common Workflow Language in GitHub \ No newline at end of file diff --git a/component-pascal/daily/index.xml b/component-pascal/daily/index.xml index 747cce0470e..8d4c2776d41 100644 --- a/component-pascal/daily/index.xml +++ b/component-pascal/daily/index.xml @@ -1,7 +1,7 @@ GitHub Component Pascal Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:29:48Z + 2024-12-20T01:29:48Z Daily Trending of Component Pascal in GitHub \ No newline at end of file diff --git a/conll-u/daily/index.xml b/conll-u/daily/index.xml index 5d9944dadb0..8ae16ba7656 100644 --- a/conll-u/daily/index.xml +++ b/conll-u/daily/index.xml @@ -1,7 +1,7 @@ GitHub CoNLL-U Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:29:48Z + 2024-12-20T01:29:49Z Daily Trending of CoNLL-U in GitHub \ No newline at end of file diff --git a/cool/daily/index.xml b/cool/daily/index.xml index bcd0555be8a..fb472e2de33 100644 --- a/cool/daily/index.xml +++ b/cool/daily/index.xml @@ -1,7 +1,7 @@ GitHub Cool Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:29:48Z + 2024-12-20T01:29:49Z Daily Trending of Cool in GitHub \ No newline at end of file diff --git a/coq/daily/index.xml b/coq/daily/index.xml index 115857c9b9b..49562bfae83 100644 --- a/coq/daily/index.xml +++ b/coq/daily/index.xml @@ -1,7 +1,7 @@ GitHub Coq Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:29:48Z + 2024-12-20T01:29:48Z Daily Trending of Coq in GitHub \ No newline at end of file diff --git a/cpp-objdump/daily/index.xml b/cpp-objdump/daily/index.xml index 8e51884cc74..63dfb45f60b 100644 --- a/cpp-objdump/daily/index.xml +++ b/cpp-objdump/daily/index.xml @@ -1,7 +1,7 @@ GitHub Cpp-ObjDump Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:29:49Z + 2024-12-20T01:29:50Z Daily Trending of Cpp-ObjDump in GitHub \ No newline at end of file diff --git a/creole/daily/index.xml b/creole/daily/index.xml index f1482a4bdbd..63d52d0bfeb 100644 --- a/creole/daily/index.xml +++ b/creole/daily/index.xml @@ -1,7 +1,7 @@ GitHub Creole Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:29:49Z + 2024-12-20T01:29:50Z Daily Trending of Creole in GitHub \ No newline at end of file diff --git a/crystal/daily/index.xml b/crystal/daily/index.xml index 17f0215c93b..275a6d94afc 100644 --- a/crystal/daily/index.xml +++ b/crystal/daily/index.xml @@ -1,7 +1,7 @@ GitHub Crystal Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:29:50Z + 2024-12-20T01:29:51Z Daily Trending of Crystal in GitHub \ No newline at end of file diff --git a/cson/daily/index.xml b/cson/daily/index.xml index 22174fd3d41..e5bfe7f866d 100644 --- a/cson/daily/index.xml +++ b/cson/daily/index.xml @@ -1,7 +1,7 @@ GitHub CSON Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:29:51Z + 2024-12-20T01:29:52Z Daily Trending of CSON in GitHub \ No newline at end of file diff --git a/csound-document/daily/index.xml b/csound-document/daily/index.xml index e57c100206b..897a402078c 100644 --- a/csound-document/daily/index.xml +++ b/csound-document/daily/index.xml @@ -1,7 +1,7 @@ GitHub Csound Document Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:29:52Z + 2024-12-20T01:29:52Z Daily Trending of Csound Document in GitHub \ No newline at end of file diff --git a/csound-score/daily/index.xml b/csound-score/daily/index.xml index 569cfcd374d..24165a1e5d9 100644 --- a/csound-score/daily/index.xml +++ b/csound-score/daily/index.xml @@ -1,7 +1,7 @@ GitHub Csound Score Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:29:51Z + 2024-12-20T01:29:51Z Daily Trending of Csound Score in GitHub \ No newline at end of file diff --git a/csound/daily/index.xml b/csound/daily/index.xml index 14fddf5c32c..9a4901890ac 100644 --- a/csound/daily/index.xml +++ b/csound/daily/index.xml @@ -1,7 +1,7 @@ GitHub Csound Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:29:51Z + 2024-12-20T01:29:53Z Daily Trending of Csound in GitHub \ No newline at end of file diff --git a/css/daily/index.xml b/css/daily/index.xml index 267e33cd740..eef96b1bed0 100644 --- a/css/daily/index.xml +++ b/css/daily/index.xml @@ -1,7 +1,7 @@ GitHub CSS Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:29:54Z + 2024-12-20T01:29:55Z Daily Trending of CSS in GitHub \ No newline at end of file diff --git a/csv/daily/index.xml b/csv/daily/index.xml index b271c446650..33d197e6cb2 100644 --- a/csv/daily/index.xml +++ b/csv/daily/index.xml @@ -1,7 +1,7 @@ GitHub CSV Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:29:52Z + 2024-12-20T01:29:53Z Daily Trending of CSV in GitHub \ No newline at end of file diff --git a/cuda/daily/index.xml b/cuda/daily/index.xml index 59fb7f660a7..d6c15ab2054 100644 --- a/cuda/daily/index.xml +++ b/cuda/daily/index.xml @@ -1,7 +1,7 @@ GitHub Cuda Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:29:53Z + 2024-12-20T01:29:55Z Daily Trending of Cuda in GitHub \ No newline at end of file diff --git a/cue/daily/index.xml b/cue/daily/index.xml index 3b2f4b99fb8..2eebfb7851f 100644 --- a/cue/daily/index.xml +++ b/cue/daily/index.xml @@ -1,7 +1,7 @@ GitHub CUE Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:29:53Z + 2024-12-20T01:29:54Z Daily Trending of CUE in GitHub \ No newline at end of file diff --git a/curl-config/daily/index.xml b/curl-config/daily/index.xml index 1f77860dbd5..069161897e5 100644 --- a/curl-config/daily/index.xml +++ b/curl-config/daily/index.xml @@ -1,7 +1,7 @@ GitHub cURL Config Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:29:57Z + 2024-12-20T01:29:58Z Daily Trending of cURL Config in GitHub \ No newline at end of file diff --git a/curry/daily/index.xml b/curry/daily/index.xml index 7df09756ea4..86b9569fe30 100644 --- a/curry/daily/index.xml +++ b/curry/daily/index.xml @@ -1,7 +1,7 @@ GitHub Curry Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:29:56Z + 2024-12-20T01:29:57Z Daily Trending of Curry in GitHub \ No newline at end of file diff --git a/cweb/daily/index.xml b/cweb/daily/index.xml index 0a5f3f90c48..fe3e96c6541 100644 --- a/cweb/daily/index.xml +++ b/cweb/daily/index.xml @@ -1,7 +1,7 @@ GitHub CWeb Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:29:56Z + 2024-12-20T01:29:58Z Daily Trending of CWeb in GitHub \ No newline at end of file diff --git a/cycript/daily/index.xml b/cycript/daily/index.xml index b1070915e52..2e32ecc34ba 100644 --- a/cycript/daily/index.xml +++ b/cycript/daily/index.xml @@ -1,7 +1,7 @@ GitHub Cycript Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:29:58Z + 2024-12-20T01:29:59Z Daily Trending of Cycript in GitHub \ No newline at end of file diff --git a/cython/daily/index.xml b/cython/daily/index.xml index d816529e79b..1a675d9ae8f 100644 --- a/cython/daily/index.xml +++ b/cython/daily/index.xml @@ -1,7 +1,7 @@ GitHub Cython Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:29:59Z + 2024-12-20T01:30:00Z Daily Trending of Cython in GitHub \ No newline at end of file diff --git a/d-objdump/daily/index.xml b/d-objdump/daily/index.xml index 31fc0195ddd..5f5f6f0f5ee 100644 --- a/d-objdump/daily/index.xml +++ b/d-objdump/daily/index.xml @@ -1,7 +1,7 @@ GitHub D-ObjDump Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:29:59Z + 2024-12-20T01:30:01Z Daily Trending of D-ObjDump in GitHub \ No newline at end of file diff --git a/d/daily/index.xml b/d/daily/index.xml index bf359accd56..c6083204868 100644 --- a/d/daily/index.xml +++ b/d/daily/index.xml @@ -1,7 +1,7 @@ GitHub D Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:30:00Z + 2024-12-20T01:30:02Z Daily Trending of D in GitHub \ No newline at end of file diff --git a/dafny/daily/index.xml b/dafny/daily/index.xml index 16daecca461..824c2eeb0d8 100644 --- a/dafny/daily/index.xml +++ b/dafny/daily/index.xml @@ -1,7 +1,7 @@ GitHub Dafny Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:30:00Z + 2024-12-20T01:30:02Z Daily Trending of Dafny in GitHub \ No newline at end of file diff --git a/darcs-patch/daily/index.xml b/darcs-patch/daily/index.xml index bd74932ee88..cc6990dd37e 100644 --- a/darcs-patch/daily/index.xml +++ b/darcs-patch/daily/index.xml @@ -1,7 +1,7 @@ GitHub Darcs Patch Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:30:01Z + 2024-12-20T01:30:03Z Daily Trending of Darcs Patch in GitHub \ No newline at end of file diff --git a/dart/daily/index.xml b/dart/daily/index.xml index c073ed61b9c..2042a79a900 100644 --- a/dart/daily/index.xml +++ b/dart/daily/index.xml @@ -1,7 +1,7 @@ GitHub Dart Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:30:03Z + 2024-12-20T01:30:05Z Daily Trending of Dart in GitHub \ No newline at end of file diff --git a/dataweave/daily/index.xml b/dataweave/daily/index.xml index b264f16920f..8283ba3ce18 100644 --- a/dataweave/daily/index.xml +++ b/dataweave/daily/index.xml @@ -1,7 +1,7 @@ GitHub DataWeave Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:30:01Z + 2024-12-20T01:30:03Z Daily Trending of DataWeave in GitHub \ No newline at end of file diff --git a/debian-package-control-file/daily/index.xml b/debian-package-control-file/daily/index.xml index 569f081ae88..10de35529a6 100644 --- a/debian-package-control-file/daily/index.xml +++ b/debian-package-control-file/daily/index.xml @@ -1,7 +1,7 @@ GitHub Debian Package Control File Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:30:01Z + 2024-12-20T01:30:03Z Daily Trending of Debian Package Control File in GitHub \ No newline at end of file diff --git a/denizenscript/daily/index.xml b/denizenscript/daily/index.xml index 5385c82e222..778bec07b71 100644 --- a/denizenscript/daily/index.xml +++ b/denizenscript/daily/index.xml @@ -1,7 +1,7 @@ GitHub DenizenScript Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:30:08Z + 2024-12-20T01:30:11Z Daily Trending of DenizenScript in GitHub \ No newline at end of file diff --git a/desktop/daily/index.xml b/desktop/daily/index.xml index 66af812f978..530cc8b87dc 100644 --- a/desktop/daily/index.xml +++ b/desktop/daily/index.xml @@ -1,7 +1,7 @@ GitHub desktop Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:30:09Z + 2024-12-20T01:30:11Z Daily Trending of desktop in GitHub \ No newline at end of file diff --git a/dhall/daily/index.xml b/dhall/daily/index.xml index 6ee1fca8b61..7009e920163 100644 --- a/dhall/daily/index.xml +++ b/dhall/daily/index.xml @@ -1,7 +1,7 @@ GitHub Dhall Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:30:08Z + 2024-12-20T01:30:11Z Daily Trending of Dhall in GitHub \ No newline at end of file diff --git a/diff/daily/index.xml b/diff/daily/index.xml index 95a1314252a..cb7cdcc3361 100644 --- a/diff/daily/index.xml +++ b/diff/daily/index.xml @@ -1,7 +1,7 @@ GitHub Diff Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:30:09Z + 2024-12-20T01:30:12Z Daily Trending of Diff in GitHub \ No newline at end of file diff --git a/digital-command-language/daily/index.xml b/digital-command-language/daily/index.xml index dfdbf978951..89fc2740b23 100644 --- a/digital-command-language/daily/index.xml +++ b/digital-command-language/daily/index.xml @@ -1,7 +1,7 @@ GitHub DIGITAL Command Language Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:30:10Z + 2024-12-20T01:30:13Z Daily Trending of DIGITAL Command Language in GitHub \ No newline at end of file diff --git a/dircolors/daily/index.xml b/dircolors/daily/index.xml index 4c3303e6920..7e072be266f 100644 --- a/dircolors/daily/index.xml +++ b/dircolors/daily/index.xml @@ -1,7 +1,7 @@ GitHub dircolors Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:30:10Z + 2024-12-20T01:30:12Z Daily Trending of dircolors in GitHub \ No newline at end of file diff --git a/directx-3d-file/daily/index.xml b/directx-3d-file/daily/index.xml index 6bc7ff2ea1f..57898f8dfbb 100644 --- a/directx-3d-file/daily/index.xml +++ b/directx-3d-file/daily/index.xml @@ -1,7 +1,7 @@ GitHub DirectX 3D File Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:30:10Z + 2024-12-20T01:30:13Z Daily Trending of DirectX 3D File in GitHub \ No newline at end of file diff --git a/dm/daily/index.xml b/dm/daily/index.xml index a137d842dec..5e541fd125c 100644 --- a/dm/daily/index.xml +++ b/dm/daily/index.xml @@ -1,7 +1,7 @@ GitHub DM Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:30:11Z + 2024-12-20T01:30:13Z Daily Trending of DM in GitHub \ No newline at end of file diff --git a/dns-zone/daily/index.xml b/dns-zone/daily/index.xml index caa57d7ac76..e75ae889292 100644 --- a/dns-zone/daily/index.xml +++ b/dns-zone/daily/index.xml @@ -1,7 +1,7 @@ GitHub DNS Zone Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:30:11Z + 2024-12-20T01:30:14Z Daily Trending of DNS Zone in GitHub \ No newline at end of file diff --git a/dockerfile/daily/index.xml b/dockerfile/daily/index.xml index b4788941b2d..87745706140 100644 --- a/dockerfile/daily/index.xml +++ b/dockerfile/daily/index.xml @@ -1,7 +1,7 @@ GitHub Dockerfile Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:30:13Z + 2024-12-20T01:30:16Z Daily Trending of Dockerfile in GitHub \ No newline at end of file diff --git a/dogescript/daily/index.xml b/dogescript/daily/index.xml index f9807dae682..64ca3cd005a 100644 --- a/dogescript/daily/index.xml +++ b/dogescript/daily/index.xml @@ -1,7 +1,7 @@ GitHub Dogescript Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:30:12Z + 2024-12-20T01:30:14Z Daily Trending of Dogescript in GitHub \ No newline at end of file diff --git a/dtrace/daily/index.xml b/dtrace/daily/index.xml index 1bed1f365e9..e3b1931e3f9 100644 --- a/dtrace/daily/index.xml +++ b/dtrace/daily/index.xml @@ -1,7 +1,7 @@ GitHub DTrace Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:30:19Z + 2024-12-20T01:30:22Z Daily Trending of DTrace in GitHub \ No newline at end of file diff --git a/dylan/daily/index.xml b/dylan/daily/index.xml index ea8396d0d60..5c311e5e93c 100644 --- a/dylan/daily/index.xml +++ b/dylan/daily/index.xml @@ -1,7 +1,7 @@ GitHub Dylan Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:30:19Z + 2024-12-20T01:30:22Z Daily Trending of Dylan in GitHub \ No newline at end of file diff --git a/e-mail/daily/index.xml b/e-mail/daily/index.xml index 7301ca7321d..7402761d23a 100644 --- a/e-mail/daily/index.xml +++ b/e-mail/daily/index.xml @@ -1,7 +1,7 @@ GitHub E-mail Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:30:20Z + 2024-12-20T01:30:23Z Daily Trending of E-mail in GitHub \ No newline at end of file diff --git a/e/daily/index.xml b/e/daily/index.xml index 44aeeef5ad1..5083be197ad 100644 --- a/e/daily/index.xml +++ b/e/daily/index.xml @@ -1,7 +1,7 @@ GitHub E Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:30:19Z + 2024-12-20T01:30:21Z Daily Trending of E in GitHub \ No newline at end of file diff --git a/eagle/daily/index.xml b/eagle/daily/index.xml index 1964b1d8166..36f565347d4 100644 --- a/eagle/daily/index.xml +++ b/eagle/daily/index.xml @@ -1,7 +1,7 @@ GitHub Eagle Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:30:21Z + 2024-12-20T01:30:24Z Daily Trending of Eagle in GitHub \ No newline at end of file diff --git a/earthly/daily/index.xml b/earthly/daily/index.xml index fd8a0590b29..c9babd45e20 100644 --- a/earthly/daily/index.xml +++ b/earthly/daily/index.xml @@ -1,7 +1,7 @@ GitHub Earthly Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:30:21Z + 2024-12-20T01:30:24Z Daily Trending of Earthly in GitHub \ No newline at end of file diff --git a/easybuild/daily/index.xml b/easybuild/daily/index.xml index 6df8c2cfb41..200382b5255 100644 --- a/easybuild/daily/index.xml +++ b/easybuild/daily/index.xml @@ -1,7 +1,7 @@ GitHub Easybuild Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:30:21Z + 2024-12-20T01:30:23Z Daily Trending of Easybuild in GitHub \ No newline at end of file diff --git a/ebnf/daily/index.xml b/ebnf/daily/index.xml index a34781001ca..e93b20991e5 100644 --- a/ebnf/daily/index.xml +++ b/ebnf/daily/index.xml @@ -1,7 +1,7 @@ GitHub EBNF Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:30:23Z + 2024-12-20T01:30:25Z Daily Trending of EBNF in GitHub \ No newline at end of file diff --git a/ec/daily/index.xml b/ec/daily/index.xml index 5e3c59a9f0c..61e04a96fe7 100644 --- a/ec/daily/index.xml +++ b/ec/daily/index.xml @@ -1,7 +1,7 @@ GitHub eC Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:30:23Z + 2024-12-20T01:30:26Z Daily Trending of eC in GitHub \ No newline at end of file diff --git a/ecere-projects/daily/index.xml b/ecere-projects/daily/index.xml index 3142e48e79c..6b5ad6edbdd 100644 --- a/ecere-projects/daily/index.xml +++ b/ecere-projects/daily/index.xml @@ -1,7 +1,7 @@ GitHub Ecere Projects Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:30:22Z + 2024-12-20T01:30:25Z Daily Trending of Ecere Projects in GitHub \ No newline at end of file diff --git a/ecl/daily/index.xml b/ecl/daily/index.xml index 51e94c761f2..2cd76db59fb 100644 --- a/ecl/daily/index.xml +++ b/ecl/daily/index.xml @@ -1,7 +1,7 @@ GitHub ECL Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:30:22Z + 2024-12-20T01:30:25Z Daily Trending of ECL in GitHub \ No newline at end of file diff --git a/eclipse/daily/index.xml b/eclipse/daily/index.xml index 1d7d9022f59..d5a97b4bcf7 100644 --- a/eclipse/daily/index.xml +++ b/eclipse/daily/index.xml @@ -1,7 +1,7 @@ GitHub ECLiPSe Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:30:25Z + 2024-12-20T01:30:27Z Daily Trending of ECLiPSe in GitHub \ No newline at end of file diff --git a/editorconfig/daily/index.xml b/editorconfig/daily/index.xml index 16130328329..217448e34df 100644 --- a/editorconfig/daily/index.xml +++ b/editorconfig/daily/index.xml @@ -1,7 +1,7 @@ GitHub EditorConfig Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:30:26Z + 2024-12-20T01:30:28Z Daily Trending of EditorConfig in GitHub \ No newline at end of file diff --git a/edje-data-collection/daily/index.xml b/edje-data-collection/daily/index.xml index c3ef70b8587..119a9181f81 100644 --- a/edje-data-collection/daily/index.xml +++ b/edje-data-collection/daily/index.xml @@ -1,7 +1,7 @@ GitHub Edje Data Collection Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:30:25Z + 2024-12-20T01:30:28Z Daily Trending of Edje Data Collection in GitHub \ No newline at end of file diff --git a/edn/daily/index.xml b/edn/daily/index.xml index 53ce325f7e1..33a628abfd3 100644 --- a/edn/daily/index.xml +++ b/edn/daily/index.xml @@ -1,7 +1,7 @@ GitHub edn Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:30:25Z + 2024-12-20T01:30:29Z Daily Trending of edn in GitHub \ No newline at end of file diff --git a/eiffel/daily/index.xml b/eiffel/daily/index.xml index 336348db049..fa2f6c49df1 100644 --- a/eiffel/daily/index.xml +++ b/eiffel/daily/index.xml @@ -1,7 +1,7 @@ GitHub Eiffel Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:30:26Z + 2024-12-20T01:30:28Z Daily Trending of Eiffel in GitHub \ No newline at end of file diff --git a/ejs/daily/index.xml b/ejs/daily/index.xml index ffee051a84e..92a1519bb80 100644 --- a/ejs/daily/index.xml +++ b/ejs/daily/index.xml @@ -1,7 +1,7 @@ GitHub EJS Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:30:27Z + 2024-12-20T01:30:30Z Daily Trending of EJS in GitHub \ No newline at end of file diff --git a/elixir/daily/index.xml b/elixir/daily/index.xml index f700c952501..2284e14ca2d 100644 --- a/elixir/daily/index.xml +++ b/elixir/daily/index.xml @@ -1,7 +1,7 @@ GitHub Elixir Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:30:29Z + 2024-12-20T01:30:31Z Daily Trending of Elixir in GitHub \ No newline at end of file diff --git a/elm/daily/index.xml b/elm/daily/index.xml index aa7ad58d96e..1d71802d7da 100644 --- a/elm/daily/index.xml +++ b/elm/daily/index.xml @@ -1,7 +1,7 @@ GitHub Elm Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:30:28Z + 2024-12-20T01:30:30Z Daily Trending of Elm in GitHub \ No newline at end of file diff --git a/emacs-lisp/daily/index.xml b/emacs-lisp/daily/index.xml index 7ab049a9684..6b60e0f8dd1 100644 --- a/emacs-lisp/daily/index.xml +++ b/emacs-lisp/daily/index.xml @@ -1,7 +1,7 @@ GitHub Emacs Lisp Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:30:32Z + 2024-12-20T01:30:34Z Daily Trending of Emacs Lisp in GitHub \ No newline at end of file diff --git a/emberscript/daily/index.xml b/emberscript/daily/index.xml index 6b1d447d045..7910ea8f38c 100644 --- a/emberscript/daily/index.xml +++ b/emberscript/daily/index.xml @@ -1,7 +1,7 @@ GitHub EmberScript Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:30:29Z + 2024-12-20T01:30:33Z Daily Trending of EmberScript in GitHub \ No newline at end of file diff --git a/eq/daily/index.xml b/eq/daily/index.xml index e521364a3d3..38654710360 100644 --- a/eq/daily/index.xml +++ b/eq/daily/index.xml @@ -1,7 +1,7 @@ GitHub EQ Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:30:30Z + 2024-12-20T01:30:32Z Daily Trending of EQ in GitHub \ No newline at end of file diff --git a/erlang/daily/index.xml b/erlang/daily/index.xml index db9edc4a8f6..ac869c27f46 100644 --- a/erlang/daily/index.xml +++ b/erlang/daily/index.xml @@ -1,7 +1,7 @@ GitHub Erlang Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:30:36Z + 2024-12-20T01:30:39Z Daily Trending of Erlang in GitHub \ No newline at end of file diff --git a/euphoria/daily/index.xml b/euphoria/daily/index.xml index 014a4b489f1..588a50ff22e 100644 --- a/euphoria/daily/index.xml +++ b/euphoria/daily/index.xml @@ -1,7 +1,7 @@ GitHub Euphoria Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:30:35Z + 2024-12-20T01:30:36Z Daily Trending of Euphoria in GitHub \ No newline at end of file diff --git a/f%23/daily/index.xml b/f%23/daily/index.xml index 8c0c6826a1b..104ab1acc01 100644 --- a/f%23/daily/index.xml +++ b/f%23/daily/index.xml @@ -1,7 +1,7 @@ GitHub F# Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:30:35Z + 2024-12-20T01:30:37Z Daily Trending of F# in GitHub \ No newline at end of file diff --git a/f*/daily/index.xml b/f*/daily/index.xml index fbddea950f3..4e192afa418 100644 --- a/f*/daily/index.xml +++ b/f*/daily/index.xml @@ -1,7 +1,7 @@ GitHub F* Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:30:34Z + 2024-12-20T01:30:37Z Daily Trending of F* in GitHub \ No newline at end of file diff --git a/factor/daily/index.xml b/factor/daily/index.xml index 2b04fb5f9b2..a2cd2dc7171 100644 --- a/factor/daily/index.xml +++ b/factor/daily/index.xml @@ -1,7 +1,7 @@ GitHub Factor Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:30:36Z + 2024-12-20T01:30:39Z Daily Trending of Factor in GitHub \ No newline at end of file diff --git a/fancy/daily/index.xml b/fancy/daily/index.xml index 388bcad487e..6e68ad49384 100644 --- a/fancy/daily/index.xml +++ b/fancy/daily/index.xml @@ -1,7 +1,7 @@ GitHub Fancy Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:30:37Z + 2024-12-20T01:30:40Z Daily Trending of Fancy in GitHub \ No newline at end of file diff --git a/fantom/daily/index.xml b/fantom/daily/index.xml index 31669bd6c7e..003ea088afe 100644 --- a/fantom/daily/index.xml +++ b/fantom/daily/index.xml @@ -1,7 +1,7 @@ GitHub Fantom Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:30:36Z + 2024-12-20T01:30:40Z Daily Trending of Fantom in GitHub \ No newline at end of file diff --git a/faust/daily/index.xml b/faust/daily/index.xml index c7659bfc553..4c0f4f34453 100644 --- a/faust/daily/index.xml +++ b/faust/daily/index.xml @@ -1,7 +1,7 @@ GitHub Faust Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:30:37Z + 2024-12-20T01:30:40Z Daily Trending of Faust in GitHub \ No newline at end of file diff --git a/fennel/daily/index.xml b/fennel/daily/index.xml index 6c67e72ca16..87d1035f6f4 100644 --- a/fennel/daily/index.xml +++ b/fennel/daily/index.xml @@ -1,7 +1,7 @@ GitHub Fennel Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:30:38Z + 2024-12-20T01:30:42Z Daily Trending of Fennel in GitHub \ No newline at end of file diff --git a/figlet-font/daily/index.xml b/figlet-font/daily/index.xml index 9148a2cd998..f0373459d2f 100644 --- a/figlet-font/daily/index.xml +++ b/figlet-font/daily/index.xml @@ -1,7 +1,7 @@ GitHub FIGlet Font Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:30:38Z + 2024-12-20T01:30:41Z Daily Trending of FIGlet Font in GitHub \ No newline at end of file diff --git a/filebench-wml/daily/index.xml b/filebench-wml/daily/index.xml index a05f94dd24e..9f2d13ca3c1 100644 --- a/filebench-wml/daily/index.xml +++ b/filebench-wml/daily/index.xml @@ -1,7 +1,7 @@ GitHub Filebench WML Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:30:39Z + 2024-12-20T01:30:42Z Daily Trending of Filebench WML in GitHub \ No newline at end of file diff --git a/filterscript/daily/index.xml b/filterscript/daily/index.xml index 8c6bd62de6f..5d323f9268d 100644 --- a/filterscript/daily/index.xml +++ b/filterscript/daily/index.xml @@ -1,7 +1,7 @@ GitHub Filterscript Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:30:38Z + 2024-12-20T01:30:41Z Daily Trending of Filterscript in GitHub \ No newline at end of file diff --git a/fish/daily/index.xml b/fish/daily/index.xml index 9c6be08eee7..54f1b76b082 100644 --- a/fish/daily/index.xml +++ b/fish/daily/index.xml @@ -1,7 +1,7 @@ GitHub fish Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:30:39Z + 2024-12-20T01:30:43Z Daily Trending of fish in GitHub \ No newline at end of file diff --git a/fluent/daily/index.xml b/fluent/daily/index.xml index 30a20ef42c5..03a07e98983 100644 --- a/fluent/daily/index.xml +++ b/fluent/daily/index.xml @@ -1,7 +1,7 @@ GitHub Fluent Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:30:40Z + 2024-12-20T01:30:44Z Daily Trending of Fluent in GitHub \ No newline at end of file diff --git a/flux/daily/index.xml b/flux/daily/index.xml index d010063d9bb..399ca6a0044 100644 --- a/flux/daily/index.xml +++ b/flux/daily/index.xml @@ -1,7 +1,7 @@ GitHub FLUX Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:30:40Z + 2024-12-20T01:30:43Z Daily Trending of FLUX in GitHub \ No newline at end of file diff --git a/formatted/daily/index.xml b/formatted/daily/index.xml index da7c6abd8ef..4eecc0c09c7 100644 --- a/formatted/daily/index.xml +++ b/formatted/daily/index.xml @@ -1,7 +1,7 @@ GitHub Formatted Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:30:41Z + 2024-12-20T01:30:44Z Daily Trending of Formatted in GitHub \ No newline at end of file diff --git a/forth/daily/index.xml b/forth/daily/index.xml index e04386b286b..9bcf4500d27 100644 --- a/forth/daily/index.xml +++ b/forth/daily/index.xml @@ -1,7 +1,7 @@ GitHub Forth Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:30:42Z + 2024-12-20T01:30:45Z Daily Trending of Forth in GitHub \ No newline at end of file diff --git a/fortran-free-form/daily/index.xml b/fortran-free-form/daily/index.xml index dd6f7ad462b..4b70463be81 100644 --- a/fortran-free-form/daily/index.xml +++ b/fortran-free-form/daily/index.xml @@ -1,7 +1,7 @@ GitHub Fortran Free Form Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:30:41Z + 2024-12-20T01:30:45Z Daily Trending of Fortran Free Form in GitHub \ No newline at end of file diff --git a/fortran/daily/index.xml b/fortran/daily/index.xml index a6f5677492a..95c5b7887d0 100644 --- a/fortran/daily/index.xml +++ b/fortran/daily/index.xml @@ -1,7 +1,7 @@ GitHub Fortran Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:30:42Z + 2024-12-20T01:30:46Z Daily Trending of Fortran in GitHub \ No newline at end of file diff --git a/freebasic/daily/index.xml b/freebasic/daily/index.xml index a861fd9fdd9..639addbd03f 100644 --- a/freebasic/daily/index.xml +++ b/freebasic/daily/index.xml @@ -1,7 +1,7 @@ GitHub FreeBASIC Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:30:44Z + 2024-12-20T01:30:47Z Daily Trending of FreeBASIC in GitHub \ No newline at end of file diff --git a/freemarker/daily/index.xml b/freemarker/daily/index.xml index 5d1112f5b87..09442278943 100644 --- a/freemarker/daily/index.xml +++ b/freemarker/daily/index.xml @@ -1,7 +1,7 @@ GitHub FreeMarker Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:30:43Z + 2024-12-20T01:30:46Z Daily Trending of FreeMarker in GitHub \ No newline at end of file diff --git a/frege/daily/index.xml b/frege/daily/index.xml index f0aa2c5d4dc..57a5d50cec9 100644 --- a/frege/daily/index.xml +++ b/frege/daily/index.xml @@ -1,7 +1,7 @@ GitHub Frege Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:30:44Z + 2024-12-20T01:30:47Z Daily Trending of Frege in GitHub \ No newline at end of file diff --git a/futhark/daily/index.xml b/futhark/daily/index.xml index 8f27cc7a400..04bda7f59df 100644 --- a/futhark/daily/index.xml +++ b/futhark/daily/index.xml @@ -1,7 +1,7 @@ GitHub Futhark Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:30:43Z + 2024-12-20T01:30:47Z Daily Trending of Futhark in GitHub \ No newline at end of file diff --git a/g-code/daily/index.xml b/g-code/daily/index.xml index df6a7af9709..5b6ab31ffc4 100644 --- a/g-code/daily/index.xml +++ b/g-code/daily/index.xml @@ -1,7 +1,7 @@ GitHub G-code Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:30:46Z + 2024-12-20T01:30:49Z Daily Trending of G-code in GitHub \ No newline at end of file diff --git a/game-maker-language/daily/index.xml b/game-maker-language/daily/index.xml index 755edf03498..623d882e8ba 100644 --- a/game-maker-language/daily/index.xml +++ b/game-maker-language/daily/index.xml @@ -1,7 +1,7 @@ GitHub Game Maker Language Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:30:45Z + 2024-12-20T01:30:48Z Daily Trending of Game Maker Language in GitHub \ No newline at end of file diff --git a/gaml/daily/index.xml b/gaml/daily/index.xml index ee0358a0735..2a80c8107c2 100644 --- a/gaml/daily/index.xml +++ b/gaml/daily/index.xml @@ -1,7 +1,7 @@ GitHub GAML Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:30:45Z + 2024-12-20T01:30:48Z Daily Trending of GAML in GitHub \ No newline at end of file diff --git a/gams/daily/index.xml b/gams/daily/index.xml index 7564e3876d5..77cb7bbea29 100644 --- a/gams/daily/index.xml +++ b/gams/daily/index.xml @@ -1,7 +1,7 @@ GitHub GAMS Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:30:45Z + 2024-12-20T01:30:49Z Daily Trending of GAMS in GitHub \ No newline at end of file diff --git a/gap/daily/index.xml b/gap/daily/index.xml index 0e161c80ffa..fbcaf3f44d2 100644 --- a/gap/daily/index.xml +++ b/gap/daily/index.xml @@ -1,7 +1,7 @@ GitHub GAP Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:30:47Z + 2024-12-20T01:30:50Z Daily Trending of GAP in GitHub \ No newline at end of file diff --git a/gcc-machine-description/daily/index.xml b/gcc-machine-description/daily/index.xml index 7b4b2ac31ea..ccbbe11be56 100644 --- a/gcc-machine-description/daily/index.xml +++ b/gcc-machine-description/daily/index.xml @@ -1,7 +1,7 @@ GitHub GCC Machine Description Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:30:47Z + 2024-12-20T01:30:50Z Daily Trending of GCC Machine Description in GitHub \ No newline at end of file diff --git a/gdb/daily/index.xml b/gdb/daily/index.xml index becd3acf020..cbfe372d073 100644 --- a/gdb/daily/index.xml +++ b/gdb/daily/index.xml @@ -1,7 +1,7 @@ GitHub GDB Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:30:46Z + 2024-12-20T01:30:50Z Daily Trending of GDB in GitHub \ No newline at end of file diff --git a/gdscript/daily/index.xml b/gdscript/daily/index.xml index 28cee24538b..6ebfdc14ad8 100644 --- a/gdscript/daily/index.xml +++ b/gdscript/daily/index.xml @@ -1,7 +1,7 @@ GitHub GDScript Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:30:47Z + 2024-12-20T01:30:51Z Daily Trending of GDScript in GitHub \ No newline at end of file diff --git a/gedcom/daily/index.xml b/gedcom/daily/index.xml index 4a95d43ff1e..72fe691369b 100644 --- a/gedcom/daily/index.xml +++ b/gedcom/daily/index.xml @@ -1,7 +1,7 @@ GitHub GEDCOM Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:30:49Z + 2024-12-20T01:30:52Z Daily Trending of GEDCOM in GitHub \ No newline at end of file diff --git a/gemfile.lock/daily/index.xml b/gemfile.lock/daily/index.xml index 20f28346fad..0e18cbcde0d 100644 --- a/gemfile.lock/daily/index.xml +++ b/gemfile.lock/daily/index.xml @@ -1,7 +1,7 @@ GitHub Gemfile.lock Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:30:48Z + 2024-12-20T01:30:51Z Daily Trending of Gemfile.lock in GitHub \ No newline at end of file diff --git a/genie/daily/index.xml b/genie/daily/index.xml index 1fa26e3bb68..89a3f6481e7 100644 --- a/genie/daily/index.xml +++ b/genie/daily/index.xml @@ -1,7 +1,7 @@ GitHub Genie Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:30:50Z + 2024-12-20T01:30:53Z Daily Trending of Genie in GitHub \ No newline at end of file diff --git a/genshi/daily/index.xml b/genshi/daily/index.xml index bae5a15ec5e..432bf7344bf 100644 --- a/genshi/daily/index.xml +++ b/genshi/daily/index.xml @@ -1,7 +1,7 @@ GitHub Genshi Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:30:50Z + 2024-12-20T01:30:53Z Daily Trending of Genshi in GitHub \ No newline at end of file diff --git a/gentoo-ebuild/daily/index.xml b/gentoo-ebuild/daily/index.xml index 6133da7254e..a4bbcea75e1 100644 --- a/gentoo-ebuild/daily/index.xml +++ b/gentoo-ebuild/daily/index.xml @@ -1,7 +1,7 @@ GitHub Gentoo Ebuild Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:30:51Z + 2024-12-20T01:30:54Z Daily Trending of Gentoo Ebuild in GitHub \ No newline at end of file diff --git a/gentoo-eclass/daily/index.xml b/gentoo-eclass/daily/index.xml index 6d45683c9db..47c5f0f8df4 100644 --- a/gentoo-eclass/daily/index.xml +++ b/gentoo-eclass/daily/index.xml @@ -1,7 +1,7 @@ GitHub Gentoo Eclass Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:30:52Z + 2024-12-20T01:30:55Z Daily Trending of Gentoo Eclass in GitHub \ No newline at end of file diff --git a/gerber-image/daily/index.xml b/gerber-image/daily/index.xml index 815af60e04e..4c28501486c 100644 --- a/gerber-image/daily/index.xml +++ b/gerber-image/daily/index.xml @@ -1,7 +1,7 @@ GitHub Gerber Image Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:30:51Z + 2024-12-20T01:30:56Z Daily Trending of Gerber Image in GitHub \ No newline at end of file diff --git a/gettext-catalog/daily/index.xml b/gettext-catalog/daily/index.xml index 2b982de6bb5..eb0b21235fe 100644 --- a/gettext-catalog/daily/index.xml +++ b/gettext-catalog/daily/index.xml @@ -1,7 +1,7 @@ GitHub Gettext Catalog Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:30:52Z + 2024-12-20T01:30:55Z Daily Trending of Gettext Catalog in GitHub \ No newline at end of file diff --git a/gherkin/daily/index.xml b/gherkin/daily/index.xml index cc10a408951..fcc62d1f751 100644 --- a/gherkin/daily/index.xml +++ b/gherkin/daily/index.xml @@ -1,7 +1,7 @@ GitHub Gherkin Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:30:52Z + 2024-12-20T01:30:55Z Daily Trending of Gherkin in GitHub \ No newline at end of file diff --git a/git-attributes/daily/index.xml b/git-attributes/daily/index.xml index babe04671ee..38ae5dfa082 100644 --- a/git-attributes/daily/index.xml +++ b/git-attributes/daily/index.xml @@ -1,7 +1,7 @@ GitHub Git Attributes Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:30:53Z + 2024-12-20T01:30:57Z Daily Trending of Git Attributes in GitHub \ No newline at end of file diff --git a/git-config/daily/index.xml b/git-config/daily/index.xml index 78225574670..1df2b5df0fd 100644 --- a/git-config/daily/index.xml +++ b/git-config/daily/index.xml @@ -1,7 +1,7 @@ GitHub Git Config Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:30:54Z + 2024-12-20T01:30:57Z Daily Trending of Git Config in GitHub \ No newline at end of file diff --git a/gleam/daily/index.xml b/gleam/daily/index.xml index b640717a5de..ce942d385e8 100644 --- a/gleam/daily/index.xml +++ b/gleam/daily/index.xml @@ -1,7 +1,7 @@ GitHub Gleam Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:30:54Z + 2024-12-20T01:30:57Z Daily Trending of Gleam in GitHub \ No newline at end of file diff --git a/glsl/daily/index.xml b/glsl/daily/index.xml index 5dac9f05157..d2790246965 100644 --- a/glsl/daily/index.xml +++ b/glsl/daily/index.xml @@ -1,7 +1,7 @@ GitHub GLSL Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:30:56Z + 2024-12-20T01:30:59Z Daily Trending of GLSL in GitHub \ No newline at end of file diff --git a/glyph-bitmap-distribution-format/daily/index.xml b/glyph-bitmap-distribution-format/daily/index.xml index 1135a5734af..c252cfdb962 100644 --- a/glyph-bitmap-distribution-format/daily/index.xml +++ b/glyph-bitmap-distribution-format/daily/index.xml @@ -1,7 +1,7 @@ GitHub Glyph Bitmap Distribution Format Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:30:56Z + 2024-12-20T01:31:00Z Daily Trending of Glyph Bitmap Distribution Format in GitHub \ No newline at end of file diff --git a/glyph/daily/index.xml b/glyph/daily/index.xml index db627634a9a..dd25908fa41 100644 --- a/glyph/daily/index.xml +++ b/glyph/daily/index.xml @@ -1,7 +1,7 @@ GitHub Glyph Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:30:55Z + 2024-12-20T01:30:58Z Daily Trending of Glyph in GitHub \ No newline at end of file diff --git a/gn/daily/index.xml b/gn/daily/index.xml index b0d5151ec81..4e2e3025694 100644 --- a/gn/daily/index.xml +++ b/gn/daily/index.xml @@ -1,7 +1,7 @@ GitHub GN Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:30:57Z + 2024-12-20T01:31:00Z Daily Trending of GN in GitHub \ No newline at end of file diff --git a/gnuplot/daily/index.xml b/gnuplot/daily/index.xml index a6101f7a671..8476da11a68 100644 --- a/gnuplot/daily/index.xml +++ b/gnuplot/daily/index.xml @@ -1,7 +1,7 @@ GitHub Gnuplot Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:30:56Z + 2024-12-20T01:31:00Z Daily Trending of Gnuplot in GitHub \ No newline at end of file diff --git a/go-checksums/daily/index.xml b/go-checksums/daily/index.xml index 32795cf4ae0..e7140d002d6 100644 --- a/go-checksums/daily/index.xml +++ b/go-checksums/daily/index.xml @@ -1,7 +1,7 @@ GitHub Go Checksums Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:31:05Z + 2024-12-20T01:31:06Z Daily Trending of Go Checksums in GitHub \ No newline at end of file diff --git a/go-module/daily/index.xml b/go-module/daily/index.xml index 0beeccda71e..c1fde1f58e8 100644 --- a/go-module/daily/index.xml +++ b/go-module/daily/index.xml @@ -1,7 +1,7 @@ GitHub Go Module Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:31:05Z + 2024-12-20T01:31:07Z Daily Trending of Go Module in GitHub \ No newline at end of file diff --git a/go/daily/index.xml b/go/daily/index.xml index a9c61ef5059..6110beeb72b 100644 --- a/go/daily/index.xml +++ b/go/daily/index.xml @@ -1,7 +1,14 @@ GitHub Go Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:30:58Z + 2024-12-20T01:31:02Z Daily Trending of Go in GitHub + + mailru/easyjson + 2024-12-20T01:31:02Z + tag:github.com,2024-12-20:/mailru/easyjson + + <p>Fast JSON serializer for golang.</p><hr><h1>easyjson <a href="https://github.com/mailru/easyjson/actions/workflows/easyjson.yml"><img src="https://github.com/mailru/easyjson/actions/workflows/easyjson.yml/badge.svg?sanitize=true" alt="Build Status"></a> <a href="https://goreportcard.com/report/github.com/mailru/easyjson"><img src="https://goreportcard.com/badge/github.com/mailru/easyjson" alt="Go Report Card"></a></h1> <p>Package easyjson provides a fast and easy way to marshal/unmarshal Go structs to/from JSON without the use of reflection. In performance tests, easyjson outperforms the standard <code>encoding/json</code> package by a factor of 4-5x, and other JSON encoding packages by a factor of 2-3x.</p> <p>easyjson aims to keep generated Go code simple enough so that it can be easily optimized or fixed. Another goal is to provide users with the ability to customize the generated code by providing options not available with the standard <code>encoding/json</code> package, such as generating "snake_case" names or enabling <code>omitempty</code> behavior by default.</p> <h2>Usage</h2> <h3>Install:</h3> <pre><code class="language-sh"># for Go &lt; 1.17 go get -u github.com/mailru/easyjson/... </code></pre> <h4>or</h4> <pre><code class="language-sh"># for Go &gt;= 1.17 go get github.com/mailru/easyjson &amp;&amp; go install github.com/mailru/easyjson/...@latest </code></pre> <h3>Run:</h3> <pre><code class="language-sh">easyjson -all &lt;file&gt;.go </code></pre> <p>The above will generate <code>&lt;file&gt;_easyjson.go</code> containing the appropriate marshaler and unmarshaler funcs for all structs contained in <code>&lt;file&gt;.go</code>.</p> <p>Please note that easyjson requires a full Go build environment and the <code>GOPATH</code> environment variable to be set. This is because easyjson code generation invokes <code>go run</code> on a temporary file (an approach to code generation borrowed from <a href="https://github.com/pquerna/ffjson">ffjson</a>).</p> <h3>Serialize</h3> <pre><code class="language-go">someStruct := &amp;SomeStruct{Field1: "val1", Field2: "val2"} rawBytes, err := easyjson.Marshal(someStruct) </code></pre> <h3>Deserialize</h3> <pre><code class="language-go">someStruct := &amp;SomeStruct{} err := easyjson.Unmarshal(rawBytes, someStruct) </code></pre> <p>Please see the <a href="https://godoc.org/github.com/mailru/easyjson">GoDoc</a> for more information and features.</p> <h2>Options</h2> <pre><code class="language-txt">Usage of easyjson: -all generate marshaler/unmarshalers for all structs in a file -build_tags string build tags to add to generated file -gen_build_flags string build flags when running the generator while bootstrapping -byte use simple bytes instead of Base64Bytes for slice of bytes -leave_temps do not delete temporary files -no_std_marshalers don't generate MarshalJSON/UnmarshalJSON funcs -noformat do not run 'gofmt -w' on output file -omit_empty omit empty fields by default -output_filename string specify the filename of the output -pkg process the whole package instead of just the given file -snake_case use snake_case names instead of CamelCase by default -lower_camel_case use lowerCamelCase instead of CamelCase by default -stubs only generate stubs for marshaler/unmarshaler funcs -disallow_unknown_fields return error if some unknown field in json appeared -disable_members_unescape disable unescaping of \uXXXX string sequences in member names </code></pre> <p>Using <code>-all</code> will generate marshalers/unmarshalers for all Go structs in the file excluding those structs whose preceding comment starts with <code>easyjson:skip</code>. For example:</p> <pre><code class="language-go">//easyjson:skip type A struct {} </code></pre> <p>If <code>-all</code> is not provided, then only those structs whose preceding comment starts with <code>easyjson:json</code> will have marshalers/unmarshalers generated. For example:</p> <pre><code class="language-go">//easyjson:json type A struct {} </code></pre> <p>Additional option notes:</p> <ul> <li> <p><code>-snake_case</code> tells easyjson to generate snake_case field names by default (unless overridden by a field tag). The CamelCase to snake_case conversion algorithm should work in most cases (ie, HTTPVersion will be converted to "http_version").</p> </li> <li> <p><code>-build_tags</code> will add the specified build tags to generated Go sources.</p> </li> <li> <p><code>-gen_build_flags</code> will execute the easyjson bootstapping code to launch the actual generator command with provided flags. Multiple arguments should be separated by space e.g. <code>-gen_build_flags="-mod=mod -x"</code>.</p> </li> </ul> <h2>Structure json tag options</h2> <p>Besides standard json tag options like 'omitempty' the following are supported:</p> <ul> <li>'nocopy' - disables allocation and copying of string values, making them refer to original json buffer memory. This works great for short lived objects which are not hold in memory after decoding and immediate usage. Note if string requires unescaping it will be processed as normally.</li> <li>'intern' - string "interning" (deduplication) to save memory when the very same string dictionary values are often met all over the structure. See below for more details.</li> </ul> <h2>Generated Marshaler/Unmarshaler Funcs</h2> <p>For Go struct types, easyjson generates the funcs <code>MarshalEasyJSON</code> / <code>UnmarshalEasyJSON</code> for marshaling/unmarshaling JSON. In turn, these satisfy the <code>easyjson.Marshaler</code> and <code>easyjson.Unmarshaler</code> interfaces and when used in conjunction with <code>easyjson.Marshal</code> / <code>easyjson.Unmarshal</code> avoid unnecessary reflection / type assertions during marshaling/unmarshaling to/from JSON for Go structs.</p> <p>easyjson also generates <code>MarshalJSON</code> and <code>UnmarshalJSON</code> funcs for Go struct types compatible with the standard <code>json.Marshaler</code> and <code>json.Unmarshaler</code> interfaces. Please be aware that using the standard <code>json.Marshal</code> / <code>json.Unmarshal</code> for marshaling/unmarshaling will incur a significant performance penalty when compared to using <code>easyjson.Marshal</code> / <code>easyjson.Unmarshal</code>.</p> <p>Additionally, easyjson exposes utility funcs that use the <code>MarshalEasyJSON</code> and <code>UnmarshalEasyJSON</code> for marshaling/unmarshaling to and from standard readers and writers. For example, easyjson provides <code>easyjson.MarshalToHTTPResponseWriter</code> which marshals to the standard <code>http.ResponseWriter</code>. Please see the <a href="https://godoc.org/github.com/mailru/easyjson">GoDoc listing</a> for the full listing of utility funcs that are available.</p> <h2>Controlling easyjson Marshaling and Unmarshaling Behavior</h2> <p>Go types can provide their own <code>MarshalEasyJSON</code> and <code>UnmarshalEasyJSON</code> funcs that satisfy the <code>easyjson.Marshaler</code> / <code>easyjson.Unmarshaler</code> interfaces. These will be used by <code>easyjson.Marshal</code> and <code>easyjson.Unmarshal</code> when defined for a Go type.</p> <p>Go types can also satisfy the <code>easyjson.Optional</code> interface, which allows the type to define its own <code>omitempty</code> logic.</p> <h2>Type Wrappers</h2> <p>easyjson provides additional type wrappers defined in the <code>easyjson/opt</code> package. These wrap the standard Go primitives and in turn satisfy the easyjson interfaces.</p> <p>The <code>easyjson/opt</code> type wrappers are useful when needing to distinguish between a missing value and/or when needing to specifying a default value. Type wrappers allow easyjson to avoid additional pointers and heap allocations and can significantly increase performance when used properly.</p> <h2>Memory Pooling</h2> <p>easyjson uses a buffer pool that allocates data in increasing chunks from 128 to 32768 bytes. Chunks of 512 bytes and larger will be reused with the help of <code>sync.Pool</code>. The maximum size of a chunk is bounded to reduce redundant memory allocation and to allow larger reusable buffers.</p> <p>easyjson's custom allocation buffer pool is defined in the <code>easyjson/buffer</code> package, and the default behavior pool behavior can be modified (if necessary) through a call to <code>buffer.Init()</code> prior to any marshaling or unmarshaling. Please see the <a href="https://godoc.org/github.com/mailru/easyjson/buffer">GoDoc listing</a> for more information.</p> <h2>String interning</h2> <p>During unmarshaling, <code>string</code> field values can be optionally <a href="https://en.wikipedia.org/wiki/String_interning">interned</a> to reduce memory allocations and usage by deduplicating strings in memory, at the expense of slightly increased CPU usage.</p> <p>This will work effectively only for <code>string</code> fields being decoded that have frequently the same value (e.g. if you have a string field that can only assume a small number of possible values).</p> <p>To enable string interning, add the <code>intern</code> keyword tag to your <code>json</code> tag on <code>string</code> fields, e.g.:</p> <pre><code class="language-go">type Foo struct { UUID string `json:"uuid"` // will not be interned during unmarshaling State string `json:"state,intern"` // will be interned during unmarshaling } </code></pre> <h2>Issues, Notes, and Limitations</h2> <ul> <li> <p>easyjson is still early in its development. As such, there are likely to be bugs and missing features when compared to <code>encoding/json</code>. In the case of a missing feature or bug, please create a GitHub issue. Pull requests are welcome!</p> </li> <li> <p>Unlike <code>encoding/json</code>, object keys are case-sensitive. Case-insensitive matching is not currently provided due to the significant performance hit when doing case-insensitive key matching. In the future, case-insensitive object key matching may be provided via an option to the generator.</p> </li> <li> <p>easyjson makes use of <code>unsafe</code>, which simplifies the code and provides significant performance benefits by allowing no-copy conversion from <code>[]byte</code> to <code>string</code>. That said, <code>unsafe</code> is used only when unmarshaling and parsing JSON, and any <code>unsafe</code> operations / memory allocations done will be safely deallocated by easyjson. Set the build tag <code>easyjson_nounsafe</code> to compile it without <code>unsafe</code>.</p> </li> <li> <p>easyjson is compatible with Google App Engine. The <code>appengine</code> build tag (set by App Engine's environment) will automatically disable the use of <code>unsafe</code>, which is not allowed in App Engine's Standard Environment. Note that the use with App Engine is still experimental.</p> </li> <li> <p>Floats are formatted using the default precision from Go's <code>strconv</code> package. As such, easyjson will not correctly handle high precision floats when marshaling/unmarshaling JSON. Note, however, that there are very few/limited uses where this behavior is not sufficient for general use. That said, a different package may be needed if precise marshaling/unmarshaling of high precision floats to/from JSON is required.</p> </li> <li> <p>While unmarshaling, the JSON parser does the minimal amount of work needed to skip over unmatching parens, and as such full validation is not done for the entire JSON value being unmarshaled/parsed.</p> </li> <li> <p>Currently there is no true streaming support for encoding/decoding as typically for many uses/protocols the final, marshaled length of the JSON needs to be known prior to sending the data. Currently this is not possible with easyjson's architecture.</p> </li> <li> <p>easyjson parser and codegen based on reflection, so it won't work on <code>package main</code> files, because they cant be imported by parser.</p> </li> </ul> <h2>Benchmarks</h2> <p>Most benchmarks were done using the example <a href="https://dev.twitter.com/rest/reference/get/search/tweets">13kB example JSON</a> (9k after eliminating whitespace). This example is similar to real-world data, is well-structured, and contains a healthy variety of different types, making it ideal for JSON serialization benchmarks.</p> <p>Note:</p> <ul> <li> <p>For small request benchmarks, an 80 byte portion of the above example was used.</p> </li> <li> <p>For large request marshaling benchmarks, a struct containing 50 regular samples was used, making a ~500kB output JSON.</p> </li> <li> <p>Benchmarks are showing the results of easyjson's default behaviour, which makes use of <code>unsafe</code>.</p> </li> </ul> <p>Benchmarks are available in the repository and can be run by invoking <code>make</code>.</p> <h3>easyjson vs. encoding/json</h3> <p>easyjson is roughly 5-6 times faster than the standard <code>encoding/json</code> for unmarshaling, and 3-4 times faster for non-concurrent marshaling. Concurrent marshaling is 6-7x faster if marshaling to a writer.</p> <h3>easyjson vs. ffjson</h3> <p>easyjson uses the same approach for JSON marshaling as <a href="https://github.com/pquerna/ffjson">ffjson</a>, but takes a significantly different approach to lexing and parsing JSON during unmarshaling. This means easyjson is roughly 2-3x faster for unmarshaling and 1.5-2x faster for non-concurrent unmarshaling.</p> <p>As of this writing, <code>ffjson</code> seems to have issues when used concurrently: specifically, large request pooling hurts <code>ffjson</code>'s performance and causes scalability issues. These issues with <code>ffjson</code> can likely be fixed, but as of writing remain outstanding/known issues with <code>ffjson</code>.</p> <p>easyjson and <code>ffjson</code> have similar performance for small requests, however easyjson outperforms <code>ffjson</code> by roughly 2-5x times for large requests when used with a writer.</p> <h3>easyjson vs. go/codec</h3> <p><a href="https://github.com/ugorji/go">go/codec</a> provides compile-time helpers for JSON generation. In this case, helpers do not work like marshalers as they are encoding-independent.</p> <p>easyjson is generally 2x faster than <code>go/codec</code> for non-concurrent benchmarks and about 3x faster for concurrent encoding (without marshaling to a writer).</p> <p>In an attempt to measure marshaling performance of <code>go/codec</code> (as opposed to allocations/memcpy/writer interface invocations), a benchmark was done with resetting length of a byte slice rather than resetting the whole slice to nil. However, the optimization in this exact form may not be applicable in practice, since the memory is not freed between marshaling operations.</p> <h3>easyjson vs 'ujson' python module</h3> <p><a href="https://github.com/esnme/ultrajson">ujson</a> is using C code for parsing, so it is interesting to see how plain golang compares to that. It is important to note that the resulting object for python is slower to access, since the library parses JSON object into dictionaries.</p> <p>easyjson is slightly faster for unmarshaling and 2-3x faster than <code>ujson</code> for marshaling.</p> <h3>Benchmark Results</h3> <p><code>ffjson</code> results are from February 4th, 2016, using the latest <code>ffjson</code> and go1.6. <code>go/codec</code> results are from March 4th, 2016, using the latest <code>go/codec</code> and go1.6.</p> <h4>Unmarshaling</h4> <table> <thead> <tr> <th align="left">lib</th> <th align="left">json size</th> <th align="right">MB/s</th> <th align="right">allocs/op</th> <th align="right">B/op</th> </tr> </thead> <tbody> <tr> <td align="left">standard</td> <td align="left">regular</td> <td align="right">22</td> <td align="right">218</td> <td align="right">10229</td> </tr> <tr> <td align="left">standard</td> <td align="left">small</td> <td align="right">9.7</td> <td align="right">14</td> <td align="right">720</td> </tr> <tr> <td align="left"></td> <td align="left"></td> <td align="right"></td> <td align="right"></td> <td align="right"></td> </tr> <tr> <td align="left">easyjson</td> <td align="left">regular</td> <td align="right">125</td> <td align="right">128</td> <td align="right">9794</td> </tr> <tr> <td align="left">easyjson</td> <td align="left">small</td> <td align="right">67</td> <td align="right">3</td> <td align="right">128</td> </tr> <tr> <td align="left"></td> <td align="left"></td> <td align="right"></td> <td align="right"></td> <td align="right"></td> </tr> <tr> <td align="left">ffjson</td> <td align="left">regular</td> <td align="right">66</td> <td align="right">141</td> <td align="right">9985</td> </tr> <tr> <td align="left">ffjson</td> <td align="left">small</td> <td align="right">17.6</td> <td align="right">10</td> <td align="right">488</td> </tr> <tr> <td align="left"></td> <td align="left"></td> <td align="right"></td> <td align="right"></td> <td align="right"></td> </tr> <tr> <td align="left">codec</td> <td align="left">regular</td> <td align="right">55</td> <td align="right">434</td> <td align="right">19299</td> </tr> <tr> <td align="left">codec</td> <td align="left">small</td> <td align="right">29</td> <td align="right">7</td> <td align="right">336</td> </tr> <tr> <td align="left"></td> <td align="left"></td> <td align="right"></td> <td align="right"></td> <td align="right"></td> </tr> <tr> <td align="left">ujson</td> <td align="left">regular</td> <td align="right">103</td> <td align="right">N/A</td> <td align="right">N/A</td> </tr> </tbody> </table> <h4>Marshaling, one goroutine.</h4> <table> <thead> <tr> <th align="left">lib</th> <th align="left">json size</th> <th align="right">MB/s</th> <th align="right">allocs/op</th> <th align="right">B/op</th> </tr> </thead> <tbody> <tr> <td align="left">standard</td> <td align="left">regular</td> <td align="right">75</td> <td align="right">9</td> <td align="right">23256</td> </tr> <tr> <td align="left">standard</td> <td align="left">small</td> <td align="right">32</td> <td align="right">3</td> <td align="right">328</td> </tr> <tr> <td align="left">standard</td> <td align="left">large</td> <td align="right">80</td> <td align="right">17</td> <td align="right">1.2M</td> </tr> <tr> <td align="left"></td> <td align="left"></td> <td align="right"></td> <td align="right"></td> <td align="right"></td> </tr> <tr> <td align="left">easyjson</td> <td align="left">regular</td> <td align="right">213</td> <td align="right">9</td> <td align="right">10260</td> </tr> <tr> <td align="left">easyjson*</td> <td align="left">regular</td> <td align="right">263</td> <td align="right">8</td> <td align="right">742</td> </tr> <tr> <td align="left">easyjson</td> <td align="left">small</td> <td align="right">125</td> <td align="right">1</td> <td align="right">128</td> </tr> <tr> <td align="left">easyjson</td> <td align="left">large</td> <td align="right">212</td> <td align="right">33</td> <td align="right">490k</td> </tr> <tr> <td align="left">easyjson*</td> <td align="left">large</td> <td align="right">262</td> <td align="right">25</td> <td align="right">2879</td> </tr> <tr> <td align="left"></td> <td align="left"></td> <td align="right"></td> <td align="right"></td> <td align="right"></td> </tr> <tr> <td align="left">ffjson</td> <td align="left">regular</td> <td align="right">122</td> <td align="right">153</td> <td align="right">21340</td> </tr> <tr> <td align="left">ffjson**</td> <td align="left">regular</td> <td align="right">146</td> <td align="right">152</td> <td align="right">4897</td> </tr> <tr> <td align="left">ffjson</td> <td align="left">small</td> <td align="right">36</td> <td align="right">5</td> <td align="right">384</td> </tr> <tr> <td align="left">ffjson**</td> <td align="left">small</td> <td align="right">64</td> <td align="right">4</td> <td align="right">128</td> </tr> <tr> <td align="left">ffjson</td> <td align="left">large</td> <td align="right">134</td> <td align="right">7317</td> <td align="right">818k</td> </tr> <tr> <td align="left">ffjson**</td> <td align="left">large</td> <td align="right">125</td> <td align="right">7320</td> <td align="right">827k</td> </tr> <tr> <td align="left"></td> <td align="left"></td> <td align="right"></td> <td align="right"></td> <td align="right"></td> </tr> <tr> <td align="left">codec</td> <td align="left">regular</td> <td align="right">80</td> <td align="right">17</td> <td align="right">33601</td> </tr> <tr> <td align="left">codec***</td> <td align="left">regular</td> <td align="right">108</td> <td align="right">9</td> <td align="right">1153</td> </tr> <tr> <td align="left">codec</td> <td align="left">small</td> <td align="right">42</td> <td align="right">3</td> <td align="right">304</td> </tr> <tr> <td align="left">codec***</td> <td align="left">small</td> <td align="right">56</td> <td align="right">1</td> <td align="right">48</td> </tr> <tr> <td align="left">codec</td> <td align="left">large</td> <td align="right">73</td> <td align="right">483</td> <td align="right">2.5M</td> </tr> <tr> <td align="left">codec***</td> <td align="left">large</td> <td align="right">103</td> <td align="right">451</td> <td align="right">66007</td> </tr> <tr> <td align="left"></td> <td align="left"></td> <td align="right"></td> <td align="right"></td> <td align="right"></td> </tr> <tr> <td align="left">ujson</td> <td align="left">regular</td> <td align="right">92</td> <td align="right">N/A</td> <td align="right">N/A</td> </tr> </tbody> </table> <p>* marshaling to a writer, ** using <code>ffjson.Pool()</code>, *** reusing output slice instead of resetting it to nil</p> <h4>Marshaling, concurrent.</h4> <table> <thead> <tr> <th align="left">lib</th> <th align="left">json size</th> <th align="right">MB/s</th> <th align="right">allocs/op</th> <th align="right">B/op</th> </tr> </thead> <tbody> <tr> <td align="left">standard</td> <td align="left">regular</td> <td align="right">252</td> <td align="right">9</td> <td align="right">23257</td> </tr> <tr> <td align="left">standard</td> <td align="left">small</td> <td align="right">124</td> <td align="right">3</td> <td align="right">328</td> </tr> <tr> <td align="left">standard</td> <td align="left">large</td> <td align="right">289</td> <td align="right">17</td> <td align="right">1.2M</td> </tr> <tr> <td align="left"></td> <td align="left"></td> <td align="right"></td> <td align="right"></td> <td align="right"></td> </tr> <tr> <td align="left">easyjson</td> <td align="left">regular</td> <td align="right">792</td> <td align="right">9</td> <td align="right">10597</td> </tr> <tr> <td align="left">easyjson*</td> <td align="left">regular</td> <td align="right">1748</td> <td align="right">8</td> <td align="right">779</td> </tr> <tr> <td align="left">easyjson</td> <td align="left">small</td> <td align="right">333</td> <td align="right">1</td> <td align="right">128</td> </tr> <tr> <td align="left">easyjson</td> <td align="left">large</td> <td align="right">718</td> <td align="right">36</td> <td align="right">548k</td> </tr> <tr> <td align="left">easyjson*</td> <td align="left">large</td> <td align="right">2134</td> <td align="right">25</td> <td align="right">4957</td> </tr> <tr> <td align="left"></td> <td align="left"></td> <td align="right"></td> <td align="right"></td> <td align="right"></td> </tr> <tr> <td align="left">ffjson</td> <td align="left">regular</td> <td align="right">301</td> <td align="right">153</td> <td align="right">21629</td> </tr> <tr> <td align="left">ffjson**</td> <td align="left">regular</td> <td align="right">707</td> <td align="right">152</td> <td align="right">5148</td> </tr> <tr> <td align="left">ffjson</td> <td align="left">small</td> <td align="right">62</td> <td align="right">5</td> <td align="right">384</td> </tr> <tr> <td align="left">ffjson**</td> <td align="left">small</td> <td align="right">282</td> <td align="right">4</td> <td align="right">128</td> </tr> <tr> <td align="left">ffjson</td> <td align="left">large</td> <td align="right">438</td> <td align="right">7330</td> <td align="right">1.0M</td> </tr> <tr> <td align="left">ffjson**</td> <td align="left">large</td> <td align="right">131</td> <td align="right">7319</td> <td align="right">820k</td> </tr> <tr> <td align="left"></td> <td align="left"></td> <td align="right"></td> <td align="right"></td> <td align="right"></td> </tr> <tr> <td align="left">codec</td> <td align="left">regular</td> <td align="right">183</td> <td align="right">17</td> <td align="right">33603</td> </tr> <tr> <td align="left">codec***</td> <td align="left">regular</td> <td align="right">671</td> <td align="right">9</td> <td align="right">1157</td> </tr> <tr> <td align="left">codec</td> <td align="left">small</td> <td align="right">147</td> <td align="right">3</td> <td align="right">304</td> </tr> <tr> <td align="left">codec***</td> <td align="left">small</td> <td align="right">299</td> <td align="right">1</td> <td align="right">48</td> </tr> <tr> <td align="left">codec</td> <td align="left">large</td> <td align="right">190</td> <td align="right">483</td> <td align="right">2.5M</td> </tr> <tr> <td align="left">codec***</td> <td align="left">large</td> <td align="right">752</td> <td align="right">451</td> <td align="right">77574</td> </tr> </tbody> </table> <p>* marshaling to a writer, ** using <code>ffjson.Pool()</code>, *** reusing output slice instead of resetting it to nil</p> + \ No newline at end of file diff --git a/golo/daily/index.xml b/golo/daily/index.xml index d80d72594ac..dd015188901 100644 --- a/golo/daily/index.xml +++ b/golo/daily/index.xml @@ -1,7 +1,7 @@ GitHub Golo Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:31:07Z + 2024-12-20T01:31:09Z Daily Trending of Golo in GitHub \ No newline at end of file diff --git a/gosu/daily/index.xml b/gosu/daily/index.xml index e11f3785aa9..8af327fa4a4 100644 --- a/gosu/daily/index.xml +++ b/gosu/daily/index.xml @@ -1,7 +1,7 @@ GitHub Gosu Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:31:07Z + 2024-12-20T01:31:08Z Daily Trending of Gosu in GitHub \ No newline at end of file diff --git a/grace/daily/index.xml b/grace/daily/index.xml index f19cb45350f..af6e99dbff1 100644 --- a/grace/daily/index.xml +++ b/grace/daily/index.xml @@ -1,7 +1,7 @@ GitHub Grace Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:31:06Z + 2024-12-20T01:31:08Z Daily Trending of Grace in GitHub \ No newline at end of file diff --git a/gradle/daily/index.xml b/gradle/daily/index.xml index 844e5449035..f986e1ac089 100644 --- a/gradle/daily/index.xml +++ b/gradle/daily/index.xml @@ -1,7 +1,7 @@ GitHub Gradle Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:31:07Z + 2024-12-20T01:31:09Z Daily Trending of Gradle in GitHub \ No newline at end of file diff --git a/grammatical-framework/daily/index.xml b/grammatical-framework/daily/index.xml index 7ce4ed46d38..1d3818ddc64 100644 --- a/grammatical-framework/daily/index.xml +++ b/grammatical-framework/daily/index.xml @@ -1,7 +1,7 @@ GitHub Grammatical Framework Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:31:08Z + 2024-12-20T01:31:10Z Daily Trending of Grammatical Framework in GitHub \ No newline at end of file diff --git a/graph-modeling-language/daily/index.xml b/graph-modeling-language/daily/index.xml index 139338fb144..53f9ffaf712 100644 --- a/graph-modeling-language/daily/index.xml +++ b/graph-modeling-language/daily/index.xml @@ -1,7 +1,7 @@ GitHub Graph Modeling Language Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:31:09Z + 2024-12-20T01:31:10Z Daily Trending of Graph Modeling Language in GitHub \ No newline at end of file diff --git a/graphql/daily/index.xml b/graphql/daily/index.xml index 5b0417ff4c8..4156ddfe855 100644 --- a/graphql/daily/index.xml +++ b/graphql/daily/index.xml @@ -1,7 +1,7 @@ GitHub GraphQL Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:31:08Z + 2024-12-20T01:31:10Z Daily Trending of GraphQL in GitHub \ No newline at end of file diff --git a/graphviz-(dot)/daily/index.xml b/graphviz-(dot)/daily/index.xml index 47f571b82ab..6f045113433 100644 --- a/graphviz-(dot)/daily/index.xml +++ b/graphviz-(dot)/daily/index.xml @@ -1,7 +1,7 @@ GitHub Graphviz (DOT) Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:31:10Z + 2024-12-20T01:31:12Z Daily Trending of Graphviz (DOT) in GitHub \ No newline at end of file diff --git a/groovy-server-pages/daily/index.xml b/groovy-server-pages/daily/index.xml index 4d1913b002a..dd30d1bcf85 100644 --- a/groovy-server-pages/daily/index.xml +++ b/groovy-server-pages/daily/index.xml @@ -1,7 +1,7 @@ GitHub Groovy Server Pages Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:31:09Z + 2024-12-20T01:31:11Z Daily Trending of Groovy Server Pages in GitHub \ No newline at end of file diff --git a/groovy/daily/index.xml b/groovy/daily/index.xml index bf6b3e5d52f..eecccda5d4c 100644 --- a/groovy/daily/index.xml +++ b/groovy/daily/index.xml @@ -1,7 +1,7 @@ GitHub Groovy Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:31:10Z + 2024-12-20T01:31:12Z Daily Trending of Groovy in GitHub \ No newline at end of file diff --git a/gsc/daily/index.xml b/gsc/daily/index.xml index 7fc888e8ac0..c28c1b17692 100644 --- a/gsc/daily/index.xml +++ b/gsc/daily/index.xml @@ -1,7 +1,7 @@ GitHub GSC Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:31:10Z + 2024-12-20T01:31:11Z Daily Trending of GSC in GitHub \ No newline at end of file diff --git a/hack/daily/index.xml b/hack/daily/index.xml index a339288f443..dcc7e9a51fa 100644 --- a/hack/daily/index.xml +++ b/hack/daily/index.xml @@ -1,7 +1,7 @@ GitHub Hack Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:31:12Z + 2024-12-20T01:31:13Z Daily Trending of Hack in GitHub \ No newline at end of file diff --git a/haml/daily/index.xml b/haml/daily/index.xml index 4e63c4d8ce9..67a480e9930 100644 --- a/haml/daily/index.xml +++ b/haml/daily/index.xml @@ -1,7 +1,7 @@ GitHub Haml Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:31:11Z + 2024-12-20T01:31:13Z Daily Trending of Haml in GitHub \ No newline at end of file diff --git a/handlebars/daily/index.xml b/handlebars/daily/index.xml index f96c3d36968..32f34ddb87c 100644 --- a/handlebars/daily/index.xml +++ b/handlebars/daily/index.xml @@ -1,7 +1,7 @@ GitHub Handlebars Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:31:12Z + 2024-12-20T01:31:14Z Daily Trending of Handlebars in GitHub \ No newline at end of file diff --git a/haproxy/daily/index.xml b/haproxy/daily/index.xml index a0f3a1bf62a..3f3cfc7f40a 100644 --- a/haproxy/daily/index.xml +++ b/haproxy/daily/index.xml @@ -1,7 +1,7 @@ GitHub HAProxy Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:31:12Z + 2024-12-20T01:31:14Z Daily Trending of HAProxy in GitHub \ No newline at end of file diff --git a/harbour/daily/index.xml b/harbour/daily/index.xml index e4a3495d4ff..581e9800c1a 100644 --- a/harbour/daily/index.xml +++ b/harbour/daily/index.xml @@ -1,7 +1,7 @@ GitHub Harbour Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:31:13Z + 2024-12-20T01:31:15Z Daily Trending of Harbour in GitHub \ No newline at end of file diff --git a/haskell/daily/index.xml b/haskell/daily/index.xml index 3694d17f19c..676174370ab 100644 --- a/haskell/daily/index.xml +++ b/haskell/daily/index.xml @@ -1,7 +1,7 @@ GitHub Haskell Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:31:14Z + 2024-12-20T01:31:16Z Daily Trending of Haskell in GitHub \ No newline at end of file diff --git a/haxe/daily/index.xml b/haxe/daily/index.xml index b1487624f27..0131f4565e2 100644 --- a/haxe/daily/index.xml +++ b/haxe/daily/index.xml @@ -1,7 +1,7 @@ GitHub Haxe Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:31:14Z + 2024-12-20T01:31:16Z Daily Trending of Haxe in GitHub \ No newline at end of file diff --git a/hcl/daily/index.xml b/hcl/daily/index.xml index eb58fa65cd3..23e79122548 100644 --- a/hcl/daily/index.xml +++ b/hcl/daily/index.xml @@ -1,7 +1,7 @@ GitHub HCL Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:31:18Z + 2024-12-20T01:31:20Z Daily Trending of HCL in GitHub \ No newline at end of file diff --git a/hiveql/daily/index.xml b/hiveql/daily/index.xml index cdcf7e6b0fa..c54513db8fe 100644 --- a/hiveql/daily/index.xml +++ b/hiveql/daily/index.xml @@ -1,7 +1,7 @@ GitHub HiveQL Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:31:16Z + 2024-12-20T01:31:19Z Daily Trending of HiveQL in GitHub \ No newline at end of file diff --git a/hlsl/daily/index.xml b/hlsl/daily/index.xml index 1696194b5c7..f61584b35c2 100644 --- a/hlsl/daily/index.xml +++ b/hlsl/daily/index.xml @@ -1,7 +1,7 @@ GitHub HLSL Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:31:16Z + 2024-12-20T01:31:19Z Daily Trending of HLSL in GitHub \ No newline at end of file diff --git a/holyc/daily/index.xml b/holyc/daily/index.xml index 4bdf5543f25..cb958097dae 100644 --- a/holyc/daily/index.xml +++ b/holyc/daily/index.xml @@ -1,7 +1,7 @@ GitHub HolyC Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:31:19Z + 2024-12-20T01:31:21Z Daily Trending of HolyC in GitHub \ No newline at end of file diff --git a/hoon/daily/index.xml b/hoon/daily/index.xml index ac67cd82290..72f10626f07 100644 --- a/hoon/daily/index.xml +++ b/hoon/daily/index.xml @@ -1,7 +1,7 @@ GitHub hoon Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:31:19Z + 2024-12-20T01:31:22Z Daily Trending of hoon in GitHub \ No newline at end of file diff --git a/html+ecr/daily/index.xml b/html+ecr/daily/index.xml index 0f8786ca8d5..a1f20ed8f0b 100644 --- a/html+ecr/daily/index.xml +++ b/html+ecr/daily/index.xml @@ -1,7 +1,7 @@ GitHub HTML+ECR Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:31:24Z + 2024-12-20T01:31:25Z Daily Trending of HTML+ECR in GitHub \ No newline at end of file diff --git a/html+eex/daily/index.xml b/html+eex/daily/index.xml index c30e346c935..604a15094c2 100644 --- a/html+eex/daily/index.xml +++ b/html+eex/daily/index.xml @@ -1,7 +1,7 @@ GitHub HTML+EEX Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:31:23Z + 2024-12-20T01:31:26Z Daily Trending of HTML+EEX in GitHub \ No newline at end of file diff --git a/html+erb/daily/index.xml b/html+erb/daily/index.xml index a6b13304546..01fab2b4e0f 100644 --- a/html+erb/daily/index.xml +++ b/html+erb/daily/index.xml @@ -1,7 +1,7 @@ GitHub HTML+ERB Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:31:24Z + 2024-12-20T01:31:26Z Daily Trending of HTML+ERB in GitHub \ No newline at end of file diff --git a/html+php/daily/index.xml b/html+php/daily/index.xml index 691a8167a4b..787a1a4823c 100644 --- a/html+php/daily/index.xml +++ b/html+php/daily/index.xml @@ -1,7 +1,7 @@ GitHub HTML+PHP Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:31:26Z + 2024-12-20T01:31:27Z Daily Trending of HTML+PHP in GitHub \ No newline at end of file diff --git a/html+razor/daily/index.xml b/html+razor/daily/index.xml index f3e7c4c03a1..e292d0f7c6c 100644 --- a/html+razor/daily/index.xml +++ b/html+razor/daily/index.xml @@ -1,7 +1,7 @@ GitHub HTML+Razor Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:31:25Z + 2024-12-20T01:31:27Z Daily Trending of HTML+Razor in GitHub \ No newline at end of file diff --git a/html/daily/index.xml b/html/daily/index.xml index 35045c50713..20e6239ef84 100644 --- a/html/daily/index.xml +++ b/html/daily/index.xml @@ -1,7 +1,14 @@ GitHub HTML Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:31:21Z + 2024-12-20T01:31:23Z Daily Trending of HTML in GitHub + + web-infra-dev/midscene + 2024-12-20T01:31:23Z + tag:github.com,2024-12-20:/web-infra-dev/midscene + + <p>An AI-powered automation SDK can control the page, perform assertions, and extract data in JSON format using natural language.</p><hr><p align="center"> <img alt="Midscene.js" width="260" src="https://github.com/user-attachments/assets/bff5e76f-ea5c-42b7-bd12-0143a04671cf"> </p> <h1 align="center">Midscene.js</h1> <div align="center"> <p>English | <a href="https://raw.githubusercontent.com/web-infra-dev/midscene/main/README.zh.md">简体中文</a> | <a href="https://raw.githubusercontent.com/web-infra-dev/midscene/main/README.ja.md">日本語</a></p> </div> <p align="center"> Joyful UI Automation </p> <p align="center"> <img src="https://img.shields.io/npm/v/@midscene/web?style=flat-square&amp;color=00a8f0" alt="npm version"> <img src="https://img.shields.io/npm/dm/@midscene/web.svg?style=flat-square&amp;color=00a8f0" alt="downloads"> <img src="https://img.shields.io/badge/License-MIT-blue.svg?style=flat-square&amp;color=00a8f0" alt="License"> </p> <p>Midscene.js is an AI-powered automation SDK can control the page, perform assertions, and extract data in JSON format using natural language.</p> <p align="center"> <video src="https://github.com/user-attachments/assets/c9f1e7fa-9834-45ba-8e3b-c3fdc1f7e5bb" controls></video> </p> <h2>Features ✨</h2> <ul> <li><strong>Natural Language Interaction 👆</strong>: Describe the steps, and let Midscene plan and control the user interface for you</li> <li><strong>Understand UI, Answer in JSON 🔍</strong>: Provide prompts regarding the desired data format, and then receive the expected response in JSON format.</li> <li><strong>Intuitive Assertion 🤔</strong>: Make assertions in natural language; it’s all based on AI understanding.</li> <li><strong>Out-of-box LLM 🪓</strong>: It is fine to use public multimodal LLMs like GPT-4o. There is no need for any custom training.</li> <li><strong>Visualized Report 🎞️</strong>: With our visualized report file, you can easily understand and debug the whole process.</li> <li><strong>Brand New Experience! 🔥</strong>: Experience a whole new world of automation development. Enjoy!</li> </ul> <h2>Resources 📄</h2> <ul> <li><a href="https://midscenejs.com/">Home Page: https://midscenejs.com</a></li> <li><a href="https://midscenejs.com/quick-experience.html">Quick Experience By Chrome Extension</a></li> <li><a href="https://midscenejs.com/api.html">API Reference</a></li> <li><a href="https://midscenejs.com/automate-with-scripts-in-yaml.html">Automate with Scripts in YAML</a></li> <li><a href="https://midscenejs.com/integrate-with-puppeteer.html">Integrate with Puppeteer</a></li> <li><a href="https://midscenejs.com/integrate-with-playwright.html">Integrate with Playwright</a></li> <li><a href="https://midscenejs.com/model-provider.html">Customize Model and Provider</a></li> </ul> <h2>License</h2> <p>Midscene.js is <a href="https://github.com/web-infra-dev/midscene/raw/main/LICENSE">MIT licensed</a>.</p> + \ No newline at end of file diff --git a/http/daily/index.xml b/http/daily/index.xml index 00a3d109501..8b57bc67daf 100644 --- a/http/daily/index.xml +++ b/http/daily/index.xml @@ -1,7 +1,7 @@ GitHub HTTP Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:31:25Z + 2024-12-20T01:31:28Z Daily Trending of HTTP in GitHub \ No newline at end of file diff --git a/hxml/daily/index.xml b/hxml/daily/index.xml index 16032f02676..6b59b05ede7 100644 --- a/hxml/daily/index.xml +++ b/hxml/daily/index.xml @@ -1,7 +1,7 @@ GitHub HXML Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:31:25Z + 2024-12-20T01:31:27Z Daily Trending of HXML in GitHub \ No newline at end of file diff --git a/hy/daily/index.xml b/hy/daily/index.xml index f318be48685..ec865e76698 100644 --- a/hy/daily/index.xml +++ b/hy/daily/index.xml @@ -1,7 +1,7 @@ GitHub Hy Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:31:27Z + 2024-12-20T01:31:29Z Daily Trending of Hy in GitHub \ No newline at end of file diff --git a/hyphy/daily/index.xml b/hyphy/daily/index.xml index d739330be69..ad27c84eed3 100644 --- a/hyphy/daily/index.xml +++ b/hyphy/daily/index.xml @@ -1,7 +1,7 @@ GitHub HyPhy Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:31:26Z + 2024-12-20T01:31:29Z Daily Trending of HyPhy in GitHub \ No newline at end of file diff --git a/idl/daily/index.xml b/idl/daily/index.xml index 9ed5f1cc592..718cb75bb13 100644 --- a/idl/daily/index.xml +++ b/idl/daily/index.xml @@ -1,7 +1,7 @@ GitHub IDL Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:31:27Z + 2024-12-20T01:31:29Z Daily Trending of IDL in GitHub \ No newline at end of file diff --git a/idris/daily/index.xml b/idris/daily/index.xml index a80b530127d..3896ab61e37 100644 --- a/idris/daily/index.xml +++ b/idris/daily/index.xml @@ -1,7 +1,7 @@ GitHub Idris Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:31:29Z + 2024-12-20T01:31:30Z Daily Trending of Idris in GitHub \ No newline at end of file diff --git a/ignore-list/daily/index.xml b/ignore-list/daily/index.xml index dff564ec9ba..10dd198b75f 100644 --- a/ignore-list/daily/index.xml +++ b/ignore-list/daily/index.xml @@ -1,7 +1,7 @@ GitHub Ignore List Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:31:28Z + 2024-12-20T01:31:31Z Daily Trending of Ignore List in GitHub \ No newline at end of file diff --git a/igor-pro/daily/index.xml b/igor-pro/daily/index.xml index 9b5163e6970..89b26f2fe70 100644 --- a/igor-pro/daily/index.xml +++ b/igor-pro/daily/index.xml @@ -1,7 +1,7 @@ GitHub IGOR Pro Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:31:28Z + 2024-12-20T01:31:30Z Daily Trending of IGOR Pro in GitHub \ No newline at end of file diff --git a/imagej-macro/daily/index.xml b/imagej-macro/daily/index.xml index f8aeb261fcd..9c000810867 100644 --- a/imagej-macro/daily/index.xml +++ b/imagej-macro/daily/index.xml @@ -1,7 +1,7 @@ GitHub ImageJ Macro Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:31:28Z + 2024-12-20T01:31:31Z Daily Trending of ImageJ Macro in GitHub \ No newline at end of file diff --git a/inform-7/daily/index.xml b/inform-7/daily/index.xml index 0378098dbe7..1b56e777ae4 100644 --- a/inform-7/daily/index.xml +++ b/inform-7/daily/index.xml @@ -1,7 +1,7 @@ GitHub Inform 7 Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:31:30Z + 2024-12-20T01:31:32Z Daily Trending of Inform 7 in GitHub \ No newline at end of file diff --git a/ini/daily/index.xml b/ini/daily/index.xml index 2bfc4b7e1bc..5c3574ab44f 100644 --- a/ini/daily/index.xml +++ b/ini/daily/index.xml @@ -1,7 +1,7 @@ GitHub INI Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:31:30Z + 2024-12-20T01:31:33Z Daily Trending of INI in GitHub \ No newline at end of file diff --git a/inno-setup/daily/index.xml b/inno-setup/daily/index.xml index b06864b42b5..35081e894c0 100644 --- a/inno-setup/daily/index.xml +++ b/inno-setup/daily/index.xml @@ -1,14 +1,7 @@ GitHub Inno Setup Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:31:32Z + 2024-12-20T01:31:34Z Daily Trending of Inno Setup in GitHub - - amazon-ion/ion-tests - 2024-12-19T01:31:32Z - tag:github.com,2024-12-19:/amazon-ion/ion-tests - - <p>Test vectors for testing compliant Ion implementations.</p><hr> - \ No newline at end of file diff --git a/io/daily/index.xml b/io/daily/index.xml index 3792f5c6e5f..980252e1b17 100644 --- a/io/daily/index.xml +++ b/io/daily/index.xml @@ -1,7 +1,7 @@ GitHub Io Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:31:31Z + 2024-12-20T01:31:34Z Daily Trending of Io in GitHub \ No newline at end of file diff --git a/ioke/daily/index.xml b/ioke/daily/index.xml index 89ef78f9691..62899f463bc 100644 --- a/ioke/daily/index.xml +++ b/ioke/daily/index.xml @@ -1,7 +1,7 @@ GitHub Ioke Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:31:31Z + 2024-12-20T01:31:34Z Daily Trending of Ioke in GitHub \ No newline at end of file diff --git a/irc-log/daily/index.xml b/irc-log/daily/index.xml index 6a4253b208a..eea88e9dbb1 100644 --- a/irc-log/daily/index.xml +++ b/irc-log/daily/index.xml @@ -1,7 +1,7 @@ GitHub IRC log Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:31:32Z + 2024-12-20T01:31:33Z Daily Trending of IRC log in GitHub \ No newline at end of file diff --git a/isabelle-root/daily/index.xml b/isabelle-root/daily/index.xml index 993abcd6c73..8a056923b03 100644 --- a/isabelle-root/daily/index.xml +++ b/isabelle-root/daily/index.xml @@ -1,7 +1,7 @@ GitHub Isabelle ROOT Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:31:33Z + 2024-12-20T01:31:35Z Daily Trending of Isabelle ROOT in GitHub \ No newline at end of file diff --git a/isabelle/daily/index.xml b/isabelle/daily/index.xml index 70df33db426..12939a2b6ca 100644 --- a/isabelle/daily/index.xml +++ b/isabelle/daily/index.xml @@ -1,7 +1,7 @@ GitHub Isabelle Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:31:33Z + 2024-12-20T01:31:36Z Daily Trending of Isabelle in GitHub \ No newline at end of file diff --git a/j/daily/index.xml b/j/daily/index.xml index 9fa37b23d5d..b555e7b0fd9 100644 --- a/j/daily/index.xml +++ b/j/daily/index.xml @@ -1,7 +1,7 @@ GitHub J Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:31:33Z + 2024-12-20T01:31:35Z Daily Trending of J in GitHub \ No newline at end of file diff --git a/janet/daily/index.xml b/janet/daily/index.xml index 58e05e94115..657ba4c4926 100644 --- a/janet/daily/index.xml +++ b/janet/daily/index.xml @@ -1,7 +1,7 @@ GitHub Janet Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:31:33Z + 2024-12-20T01:31:36Z Daily Trending of Janet in GitHub \ No newline at end of file diff --git a/jar-manifest/daily/index.xml b/jar-manifest/daily/index.xml index bf5ac666f6a..2d3abcfacf6 100644 --- a/jar-manifest/daily/index.xml +++ b/jar-manifest/daily/index.xml @@ -1,7 +1,7 @@ GitHub JAR Manifest Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:31:34Z + 2024-12-20T01:31:37Z Daily Trending of JAR Manifest in GitHub \ No newline at end of file diff --git a/jasmin/daily/index.xml b/jasmin/daily/index.xml index df5d96384b2..0437101a3cd 100644 --- a/jasmin/daily/index.xml +++ b/jasmin/daily/index.xml @@ -1,7 +1,7 @@ GitHub Jasmin Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:31:35Z + 2024-12-20T01:31:37Z Daily Trending of Jasmin in GitHub \ No newline at end of file diff --git a/java-properties/daily/index.xml b/java-properties/daily/index.xml index f1a44e2a68e..f0cfad9c424 100644 --- a/java-properties/daily/index.xml +++ b/java-properties/daily/index.xml @@ -1,7 +1,7 @@ GitHub Java Properties Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:31:34Z + 2024-12-20T01:31:37Z Daily Trending of Java Properties in GitHub \ No newline at end of file diff --git a/java-server-pages/daily/index.xml b/java-server-pages/daily/index.xml index 1caea67f998..bc7f09b0bbc 100644 --- a/java-server-pages/daily/index.xml +++ b/java-server-pages/daily/index.xml @@ -1,7 +1,7 @@ GitHub Java Server Pages Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:31:41Z + 2024-12-20T01:31:45Z Daily Trending of Java Server Pages in GitHub \ No newline at end of file diff --git a/java/daily/index.xml b/java/daily/index.xml index ad754d87019..6e69ff13742 100644 --- a/java/daily/index.xml +++ b/java/daily/index.xml @@ -1,7 +1,7 @@ GitHub Java Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:31:36Z + 2024-12-20T01:31:39Z Daily Trending of Java in GitHub \ No newline at end of file diff --git a/javascript+erb/daily/index.xml b/javascript+erb/daily/index.xml index 570584b63be..344d2495a79 100644 --- a/javascript+erb/daily/index.xml +++ b/javascript+erb/daily/index.xml @@ -1,7 +1,7 @@ GitHub JavaScript+ERB Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:31:41Z + 2024-12-20T01:31:46Z Daily Trending of JavaScript+ERB in GitHub \ No newline at end of file diff --git a/javascript/daily/index.xml b/javascript/daily/index.xml index 911e6c45ca2..993fe085d28 100644 --- a/javascript/daily/index.xml +++ b/javascript/daily/index.xml @@ -1,14 +1,7 @@ GitHub JavaScript Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:31:43Z + 2024-12-20T01:31:47Z Daily Trending of JavaScript in GitHub - - dbt-labs/docs.getdbt.com - 2024-12-19T01:31:43Z - tag:github.com,2024-12-19:/dbt-labs/docs.getdbt.com - - <p>The code behind docs.getdbt.com</p><hr><p><em>We use <a href="https://v2.docusaurus.io/">docusaurus</a> to power <a href="https://docs.getdbt.com/">docs.getdbt.com</a>.</em></p> <h4>Table of Contents</h4> <ul> <li><a href="https://raw.githubusercontent.com/dbt-labs/docs.getdbt.com/current/#Code-of-conduct">Code of Conduct</a></li> <li><a href="https://raw.githubusercontent.com/dbt-labs/docs.getdbt.com/current/#contributing">Contributing</a></li> <li><a href="https://raw.githubusercontent.com/dbt-labs/docs.getdbt.com/current/#writing-content">Writing content</a></li> <li><a href="https://raw.githubusercontent.com/dbt-labs/docs.getdbt.com/current/#running-the-docs-site-locally">Running the docs site locally</a></li> </ul> <h1>Code of conduct</h1> <p>Please review the dbt docs contributors <a href="https://github.com/dbt-labs/docs.getdbt.com/raw/current/contributing/contributor-code-of-conduct.md">code of conduct</a>. Creating an inclusive and equitable environment for our documents is more important than any other aspect. Syntax errors can be corrected, but trust, once lost, is difficult to gain back.</p> <h1>Contributing</h1> <p>We welcome contributions from community members to this repo:</p> <ul> <li><strong>Fixes</strong>: When you notice an error, you can use the <code>Edit this page</code> button at the bottom of each page to suggest a change.</li> <li><strong>New documentation</strong>: If you contributed code in <a href="https://github.com/dbt-labs/dbt-core">dbt-core</a>, we encourage you to also write the docs here! Please reach out in the dbt community if you need help finding a place for these docs.</li> <li><strong>Major rewrites</strong>: You can <a href="https://github.com/dbt-labs/docs.getdbt.com/issues/new/choose">file an issue</a> to propose ideas for a content area that requires attention.</li> </ul> <p>You can use components documented in the <a href="https://v2.docusaurus.io/docs/markdown-features/">docusaurus library</a>.</p> <h1>Writing content</h1> <p>The dbt Labs docs are written in Markdown and sometimes HTML. When writing content, refer to the <a href="https://github.com/dbt-labs/docs.getdbt.com/raw/current/contributing/content-style-guide.md">style guide</a> and <a href="https://raw.githubusercontent.com/dbt-labs/docs.getdbt.com/current/contributing/content-types.md">content types</a> to help you understand our writing standards and how we break down information in the product documentation.</p> <h2>SME and editorial reviews</h2> <p>All PRs that are submitted will be reviewed by the dbt Labs Docs team for editorial review.</p> <p>Content that is submitted by our users and the open-source community are also reviewed by our dbt Labs subject matter experts (SMEs) to help ensure technical accuracy.</p> <h2>Versioning and single-sourcing content</h2> <p>We now enable you to reuse content between different docs pages, version pages, and establish product variables in the dbt Labs product documentation. To learn more about how to single source content between versions, product variables, and other content, see <a href="https://raw.githubusercontent.com/dbt-labs/docs.getdbt.com/current/contributing/single-sourcing-content.md">Single-sourcing content</a>.</p> <h2>Adding tabbed components to a page</h2> <p>You can add code snippets and other content in a tabbed view. To learn more about adding tabbed components, see <a href="https://raw.githubusercontent.com/dbt-labs/docs.getdbt.com/current/contributing/adding-page-components.md">Adding page components</a>.</p> <h1>Running the Docs site locally</h1> <p>You can click a link available in a Vercel bot PR comment to see and review your changes rendered on a staging server. You are also able to see and review your proposed modifications locally on your computer. Our setup instructions use <a href="https://brew.sh/">homebrew</a>:</p> <h2>Prerequisites</h2> <ul> <li>(Mac Terminal) Install <a href="https://developer.apple.com/download/more/">Xcode Command Line Tools</a> <ul> <li>Open a terminal window, run <code>xcode-select --install</code>, and follow the on-screen prompts in the pop-up window.</li> </ul> </li> <li>(Mac and Linux) Install <a href="https://brew.sh/">homebrew</a> <ul> <li>Copy and paste <code>/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"</code> in to a terminal window and follow the prompts. Once the installation has completed, follow the <strong>Next Steps</strong> instructions listed in terminal.</li> </ul> </li> <li>(Windows) Install <a href="https://nodejs.org/en/download/">Node.js</a></li> </ul> <ol> <li>(Mac and Linux only) Install <code>node</code>: <code>brew install node</code></li> <li>Clone this repo: <code>git clone https://github.com/dbt-labs/docs.getdbt.com.git</code></li> <li><code>cd</code> into the repo: <code>cd docs.getdbt.com</code></li> <li><code>cd</code> into the <code>website</code> subdirectory: <code>cd website</code></li> <li>Install the required node packages: <code>make install</code> or <code>npm install</code> (optional — install any updates)</li> <li>Build the website: <code>make run</code> or <code>npm start</code></li> <li>Before pushing your changes to a branch, run <code>make build</code> or <code>npm run build</code> and check that all links work</li> </ol> <p>Advisory:</p> <ul> <li>If you run into an <code>fatal error: 'vips/vips8' file not found</code> error when you run <code>npm install</code>, you may need to run <code>brew install vips</code>. Warning: this one will take a while -- go ahead and grab some coffee!</li> </ul> - \ No newline at end of file diff --git a/jest-snapshot/daily/index.xml b/jest-snapshot/daily/index.xml index df2e13227c3..d2269307a30 100644 --- a/jest-snapshot/daily/index.xml +++ b/jest-snapshot/daily/index.xml @@ -1,7 +1,7 @@ GitHub Jest Snapshot Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:31:50Z + 2024-12-20T01:31:54Z Daily Trending of Jest Snapshot in GitHub \ No newline at end of file diff --git a/jflex/daily/index.xml b/jflex/daily/index.xml index 949332300bc..cb071da90de 100644 --- a/jflex/daily/index.xml +++ b/jflex/daily/index.xml @@ -1,7 +1,7 @@ GitHub JFlex Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:31:49Z + 2024-12-20T01:31:55Z Daily Trending of JFlex in GitHub \ No newline at end of file diff --git a/jinja/daily/index.xml b/jinja/daily/index.xml index 1f818f28ecc..a50e6fe6cb3 100644 --- a/jinja/daily/index.xml +++ b/jinja/daily/index.xml @@ -1,7 +1,7 @@ GitHub Jinja Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:31:23Z + 2024-12-20T01:31:25Z Daily Trending of Jinja in GitHub \ No newline at end of file diff --git a/jison-lex/daily/index.xml b/jison-lex/daily/index.xml index f8e1199e920..d85d89cf8ec 100644 --- a/jison-lex/daily/index.xml +++ b/jison-lex/daily/index.xml @@ -1,7 +1,7 @@ GitHub Jison Lex Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:31:51Z + 2024-12-20T01:31:56Z Daily Trending of Jison Lex in GitHub \ No newline at end of file diff --git a/jison/daily/index.xml b/jison/daily/index.xml index 5fc1cd77534..0122a80834c 100644 --- a/jison/daily/index.xml +++ b/jison/daily/index.xml @@ -1,7 +1,7 @@ GitHub Jison Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:31:52Z + 2024-12-20T01:31:55Z Daily Trending of Jison in GitHub \ No newline at end of file diff --git a/jolie/daily/index.xml b/jolie/daily/index.xml index 14162fa88f7..ff2f467acdc 100644 --- a/jolie/daily/index.xml +++ b/jolie/daily/index.xml @@ -1,7 +1,7 @@ GitHub Jolie Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:31:51Z + 2024-12-20T01:31:56Z Daily Trending of Jolie in GitHub \ No newline at end of file diff --git a/jq/daily/index.xml b/jq/daily/index.xml index 9ad0deab68d..90ce76ad707 100644 --- a/jq/daily/index.xml +++ b/jq/daily/index.xml @@ -1,7 +1,7 @@ GitHub jq Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:31:51Z + 2024-12-20T01:31:56Z Daily Trending of jq in GitHub \ No newline at end of file diff --git a/json-with-comments/daily/index.xml b/json-with-comments/daily/index.xml index 881fd6e17d7..438a263a767 100644 --- a/json-with-comments/daily/index.xml +++ b/json-with-comments/daily/index.xml @@ -1,7 +1,7 @@ GitHub JSON with Comments Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:31:53Z + 2024-12-20T01:31:57Z Daily Trending of JSON with Comments in GitHub \ No newline at end of file diff --git a/json/daily/index.xml b/json/daily/index.xml index 857b1e9fa0a..55c2be47051 100644 --- a/json/daily/index.xml +++ b/json/daily/index.xml @@ -1,7 +1,7 @@ GitHub JSON Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:31:53Z + 2024-12-20T01:31:58Z Daily Trending of JSON in GitHub \ No newline at end of file diff --git a/json5/daily/index.xml b/json5/daily/index.xml index 3f792d95788..03a483e9d5b 100644 --- a/json5/daily/index.xml +++ b/json5/daily/index.xml @@ -1,7 +1,7 @@ GitHub JSON5 Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:31:52Z + 2024-12-20T01:31:57Z Daily Trending of JSON5 in GitHub \ No newline at end of file diff --git a/jsoniq/daily/index.xml b/jsoniq/daily/index.xml index 32f75ede198..c781df892ce 100644 --- a/jsoniq/daily/index.xml +++ b/jsoniq/daily/index.xml @@ -1,7 +1,7 @@ GitHub JSONiq Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:31:53Z + 2024-12-20T01:31:57Z Daily Trending of JSONiq in GitHub \ No newline at end of file diff --git a/jsonld/daily/index.xml b/jsonld/daily/index.xml index 334db3f5e0f..cdc631404fd 100644 --- a/jsonld/daily/index.xml +++ b/jsonld/daily/index.xml @@ -1,7 +1,7 @@ GitHub JSONLD Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:31:54Z + 2024-12-20T01:31:59Z Daily Trending of JSONLD in GitHub \ No newline at end of file diff --git a/jsonnet/daily/index.xml b/jsonnet/daily/index.xml index 7df8f379c3c..f21c8b71eb4 100644 --- a/jsonnet/daily/index.xml +++ b/jsonnet/daily/index.xml @@ -1,7 +1,7 @@ GitHub Jsonnet Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:31:55Z + 2024-12-20T01:31:59Z Daily Trending of Jsonnet in GitHub \ No newline at end of file diff --git a/julia/daily/index.xml b/julia/daily/index.xml index bb7e99d012a..47dd9eedc53 100644 --- a/julia/daily/index.xml +++ b/julia/daily/index.xml @@ -1,14 +1,7 @@ GitHub Julia Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:31:55Z + 2024-12-20T01:32:00Z Daily Trending of Julia in GitHub - - JuliaParallel/ClusterManagers.jl - 2024-12-19T01:31:55Z - tag:github.com,2024-12-19:/JuliaParallel/ClusterManagers.jl - - <p></p><hr> - \ No newline at end of file diff --git a/jupyter-notebook/daily/index.xml b/jupyter-notebook/daily/index.xml index cd0771cad82..0b2ed4866d2 100644 --- a/jupyter-notebook/daily/index.xml +++ b/jupyter-notebook/daily/index.xml @@ -1,7 +1,14 @@ GitHub Jupyter Notebook Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:31:58Z + 2024-12-20T01:32:05Z Daily Trending of Jupyter Notebook in GitHub + + NirDiamant/GenAI_Agents + 2024-12-20T01:32:05Z + tag:github.com,2024-12-20:/NirDiamant/GenAI_Agents + + <p>This repository provides tutorials and implementations for various Generative AI Agent techniques, from basic to advanced. It serves as a comprehensive guide for building intelligent, interactive AI systems.</p><hr><p><a href="http://makeapullrequest.com"><img src="https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square" alt="PRs Welcome"></a> <a href="https://www.linkedin.com/in/nir-diamant-759323134/"><img src="https://img.shields.io/badge/LinkedIn-Connect-blue" alt="LinkedIn"></a> <a href="https://twitter.com/NirDiamantAI"><img src="https://img.shields.io/twitter/follow/NirDiamantAI?label=Follow%20@NirDiamantAI&amp;style=social" alt="Twitter"></a> <a href="https://discord.gg/cA6Aa4uyDX"><img src="https://img.shields.io/badge/Discord-Join%20our%20community-7289da?style=flat-square&amp;logo=discord&amp;logoColor=white" alt="Discord"></a></p> <blockquote> <p>🌟 <strong>Support This Project:</strong> Your sponsorship fuels innovation in GenAI agent development. <strong><a href="https://github.com/sponsors/NirDiamant">Become a sponsor</a></strong> to help maintain and expand this valuable resource!</p> </blockquote> <h1>GenAI Agents: Comprehensive Repository for Development and Implementation 🚀</h1> <p>Welcome to one of the most extensive and dynamic collections of Generative AI (GenAI) agent tutorials and implementations available today. This repository serves as a comprehensive resource for learning, building, and sharing GenAI agents, ranging from simple conversational bots to complex, multi-agent systems.</p> <h2>📫 Stay Updated!</h2> <div align="center"> <table> <tbody> <tr> <td align="center">🚀<br><b>Cutting-edge<br>Updates</b></td> <td align="center">💡<br><b>Expert<br>Insights</b></td> <td align="center">🎯<br><b>Top 1%<br>Content</b></td> </tr> </tbody> </table> <p><a href="https://diamantai.substack.com/?r=336pe4&amp;utm_campaign=pub-share-checklist"><img src="https://raw.githubusercontent.com/NirDiamant/GenAI_Agents/main/images/subscribe-button.svg?sanitize=true" alt="Subscribe to DiamantAI Newsletter"></a></p> <p><em>Join thousands of AI enthusiasts getting unique cutting edge insights and free tutorials!</em></p> </div> <p><a href="https://diamantai.substack.com/?r=336pe4&amp;utm_campaign=pub-share-checklist"><img src="https://raw.githubusercontent.com/NirDiamant/GenAI_Agents/main/images/substack_image.png" alt="DiamantAI's newsletter"></a></p> <h2>Introduction</h2> <p>Generative AI agents are at the forefront of artificial intelligence, revolutionizing the way we interact with and leverage AI technologies. This repository is designed to guide you through the development journey, from basic agent implementations to advanced, cutting-edge systems.</p> <p>Our goal is to provide a valuable resource for everyone - from beginners taking their first steps in AI to seasoned practitioners pushing the boundaries of what's possible. By offering a range of examples from foundational to complex, we aim to facilitate learning, experimentation, and innovation in the rapidly evolving field of GenAI agents.</p> <p>Furthermore, this repository serves as a platform for showcasing innovative agent creations. Whether you've developed a novel agent architecture or found an innovative application for existing techniques, we encourage you to share your work with the community.</p> <h2>Related Projects</h2> <p>📚 Dive into my <strong><a href="https://github.com/NirDiamant/RAG_Techniques">comprehensive guide on RAG techniques</a></strong> to learn about integrating external knowledge into AI systems, enhancing their capabilities with up-to-date and relevant information retrieval.</p> <p>🖋️ Explore my <strong><a href="https://github.com/NirDiamant/Prompt_Engineering">Prompt Engineering Techniques guide</a></strong> for an extensive collection of prompting strategies, from fundamental concepts to advanced methods, improving your ability to communicate effectively with AI language models.</p> <h2>A Community-Driven Knowledge Hub</h2> <p><strong>This repository grows stronger with your contributions!</strong> Join our vibrant Discord community — the central hub for shaping and advancing this project together 🤝</p> <p><strong><a href="https://discord.gg/cA6Aa4uyDX">GenAI Agents Discord Community</a></strong></p> <p>Whether you're a novice eager to learn or an expert ready to share your knowledge, your insights can shape the future of GenAI agents. Join us to propose ideas, get feedback, and collaborate on innovative implementations. For contribution guidelines, please refer to our <strong><a href="https://github.com/NirDiamant/GenAI_Agents/raw/main/CONTRIBUTING.md">CONTRIBUTING.md</a></strong> file. Let's advance GenAI agent technology together!</p> <p>🔗 For discussions on GenAI, agents, or to explore knowledge-sharing opportunities, feel free to <strong><a href="https://www.linkedin.com/in/nir-diamant-759323134/">connect on LinkedIn</a></strong>.</p> <h2>Key Features</h2> <ul> <li>🎓 Learn to build GenAI agents from beginner to advanced levels</li> <li>🧠 Explore a wide range of agent architectures and applications</li> <li>📚 Step-by-step tutorials and comprehensive documentation</li> <li>🛠️ Practical, ready-to-use agent implementations</li> <li>🌟 Regular updates with the latest advancements in GenAI</li> <li>🤝 Share your own agent creations with the community</li> </ul> <h2>GenAI Agent Implementations</h2> <p>Explore our extensive list of GenAI agent implementations, sorted by categories:</p> <h3>🌱 Beginner-Friendly Agents</h3> <ol> <li> <p><strong>Simple Conversational Agent</strong></p> <ul> <li><strong><a href="https://github.com/NirDiamant/GenAI_Agents/raw/main/all_agents_tutorials/simple_conversational_agent.ipynb">LangChain</a></strong></li> <li><strong><a href="https://github.com/NirDiamant/GenAI_Agents/raw/main/all_agents_tutorials/simple_conversational_agent-pydanticai.ipynb">PydanticAI</a></strong></li> </ul> <h4>Overview 🔎</h4> <p>A context-aware conversational AI maintains information across interactions, enabling more natural dialogues.</p> <h4>Implementation 🛠️</h4> <p>Integrates a language model, prompt template, and history manager to generate contextual responses and track conversation sessions.</p> </li> <li> <p><strong><a href="https://github.com/NirDiamant/GenAI_Agents/raw/main/all_agents_tutorials/simple_question_answering_agent.ipynb">Simple Question Answering Agent</a></strong></p> <h4>Overview 🔎</h4> <p>Answering (QA) agent using LangChain and OpenAI's language model understands user queries and provides relevant, concise answers.</p> <h4>Implementation 🛠️</h4> <p>Combines OpenAI's GPT model, a prompt template, and an LLMChain to process user questions and generate AI-driven responses in a streamlined manner.</p> </li> <li> <p><strong><a href="https://github.com/NirDiamant/GenAI_Agents/raw/main/all_agents_tutorials/simple_data_analysis_agent_notebook.ipynb">Simple Data Analysis Agent</a></strong></p> <h4>Overview 🔎</h4> <p>An AI-powered data analysis agent interprets and answers questions about datasets using natural language, combining language models with data manipulation tools for intuitive data exploration.</p> <h4>Implementation 🛠️</h4> <p>Integrates a language model, data manipulation framework, and agent framework to process natural language queries and perform data analysis on a synthetic dataset, enabling accessible insights for non-technical users.</p> </li> </ol> <h3>🔧 Framework Tutorial: LangGraph</h3> <ol start="4"> <li> <p><strong><a href="https://github.com/NirDiamant/GenAI_Agents/raw/main/all_agents_tutorials/langgraph-tutorial.ipynb">Introduction to LangGraph: Building Modular AI Workflows</a></strong></p> <h4>Overview 🔎</h4> <p>This tutorial introduces LangGraph, a powerful framework for creating modular, graph-based AI workflows. Learn how to leverage LangGraph to build more complex and flexible AI agents that can handle multi-step processes efficiently.</p> <h4>Implementation 🛠️</h4> <p>Step-by-step guide on using LangGraph to create a StateGraph workflow. The tutorial covers key concepts such as state management, node creation, and graph compilation. It demonstrates these principles by constructing a simple text analysis pipeline, serving as a foundation for more advanced agent architectures.</p> </li> </ol> <h3>🎓 Educational and Research Agents</h3> <ol start="5"> <li> <p><strong><a href="https://github.com/NirDiamant/GenAI_Agents/raw/main/all_agents_tutorials/Academic_Task_Learning_Agent_LangGraph.ipynb">ATLAS: Academic Task and Learning Agent System</a></strong></p> <h4>Overview 🔎</h4> <p>ATLAS demonstrates how to build an intelligent multi-agent system that transforms academic support through AI-powered assistance. The system leverages LangGraph's workflow framework to coordinate multiple specialized agents that provide personalized academic planning, note-taking, and advisory support.</p> <h4>Implementation 🛠️</h4> <p>Implements a state-managed multi-agent architecture using four specialized agents (Coordinator, Planner, Notewriter, and Advisor) working in concert through LangGraph's workflow framework. The system features sophisticated workflows for profile analysis and academic support, with continuous adaptation based on student performance and feedback.</p> <h4>Additional Resources 📚</h4> <ul> <li><strong><a href="https://www.youtube.com/watch?v=yxowMLL2dDI">YouTube Explanation</a></strong></li> <li><strong><a href="https://open.substack.com/pub/diamantai/p/atlas-when-artificial-intelligence?r=336pe4&amp;utm_campaign=post&amp;utm_medium=web&amp;showWelcomeOnShare=false">Blog Post</a></strong></li> </ul> </li> <li> <p><strong><a href="https://github.com/NirDiamant/GenAI_Agents/raw/main/all_agents_tutorials/scientific_paper_agent_langgraph.ipynb">Scientific Paper Agent - Literature Review</a></strong></p> <h4>Overview 🔎</h4> <p>An intelligent research assistant that helps users navigate, understand, and analyze scientific literature through an orchestrated workflow. The system combines academic APIs with sophisticated paper processing techniques to automate literature review tasks, enabling researchers to efficiently extract insights from academic papers while maintaining research rigor and quality control.</p> <h4>Implementation 🛠️</h4> <p>Leverages LangGraph to create a five-node workflow system including decision making, planning, tool execution, and quality validation nodes. The system integrates the CORE API for paper access, PDFplumber for document processing, and advanced language models for analysis. Key features include a retry mechanism for robust paper downloads, structured data handling through Pydantic models, and quality-focused improvement cycles with human-in-the-loop validation options.</p> <h4>Additional Resources 📚</h4> <ul> <li><strong><a href="https://youtu.be/Bc4YtpHY6Ws">YouTube Explanation</a></strong></li> <li><strong><a href="https://open.substack.com/pub/diamantai/p/nexus-ai-the-revolutionary-research?r=336pe4&amp;utm_campaign=post&amp;utm_medium=web&amp;showWelcomeOnShare=false">Blog Post</a></strong></li> </ul> </li> <li> <p><strong><a href="https://github.com/NirDiamant/GenAI_Agents/raw/main/all_agents_tutorials/chiron_learning_agent_langgraph.ipynb">Chiron - A Feynman-Enhanced Learning Agent</a></strong></p> <h4>Overview 🔎</h4> <p>An adaptive learning agent that guides users through educational content using a structured checkpoint system and Feynman-style teaching. The system processes learning materials (either user-provided or web-retrieved), verifies understanding through interactive checkpoints, and provides simplified explanations when needed, creating a personalized learning experience that mimics one-on-one tutoring.</p> <h4>Implementation 🛠️</h4> <p>Uses LangGraph to orchestrate a learning workflow that includes checkpoint definition, context building, understanding verification, and Feynman teaching nodes. The system integrates web search for dynamic content retrieval, employs semantic chunking for context processing, and manages embeddings for relevant information retrieval. Key features include a 70% understanding threshold for progression, interactive human-in-the-loop validation, and structured output through Pydantic models for consistent data handling.</p> <h4>Additional Resources 📚</h4> <ul> <li><strong><a href="https://www.youtube.com/watch?v=qsdiTGkB8mk">YouTube Explanation</a></strong></li> </ul> </li> </ol> <h3>💼 Business and Professional Agents</h3> <ol start="8"> <li> <p><strong><a href="https://github.com/NirDiamant/GenAI_Agents/raw/main/all_agents_tutorials/customer_support_agent_langgraph.ipynb">Customer Support Agent (LangGraph)</a></strong></p> <h4>Overview 🔎</h4> <p>An intelligent customer support agent using LangGraph categorizes queries, analyzes sentiment, and provides appropriate responses or escalates issues.</p> <h4>Implementation 🛠️</h4> <p>Utilizes LangGraph to create a workflow combining state management, query categorization, sentiment analysis, and response generation.</p> </li> <li> <p><strong><a href="https://github.com/NirDiamant/GenAI_Agents/raw/main/all_agents_tutorials/essay_grading_system_langgraph.ipynb">Essay Grading Agent (LangGraph)</a></strong></p> <h4>Overview 🔎</h4> <p>An automated essay grading system using LangGraph and an LLM model evaluates essays based on relevance, grammar, structure, and depth of analysis.</p> <h4>Implementation 🛠️</h4> <p>Utilizes a state graph to define the grading workflow, incorporating separate grading functions for each criterion.</p> </li> <li> <p><strong><a href="https://github.com/NirDiamant/GenAI_Agents/raw/main/all_agents_tutorials/simple_travel_planner_langgraph.ipynb">Travel Planning Agent (LangGraph)</a></strong></p> <h4>Overview 🔎</h4> <p>A Travel Planner using LangGraph demonstrates how to build a stateful, multi-step conversational AI application that collects user input and generates personalized travel itineraries.</p> <h4>Implementation 🛠️</h4> <p>Utilizes StateGraph to define the application flow, incorporates custom PlannerState for process management.</p> </li> <li> <p><strong><a href="https://github.com/NirDiamant/GenAI_Agents/raw/main/all_agents_tutorials/agent_hackathon_genAI_career_assistant.ipynb">GenAI Career Assistant Agent</a></strong></p> <h4>Overview 🔎</h4> <p>The GenAI Career Assistant demonstrates how to create a multi-agent system that provides personalized guidance for careers in Generative AI. Using LangGraph and Gemini LLM, the system delivers customized learning paths, resume assistance, interview preparation, and job search support.</p> <h4>Implementation 🛠️</h4> <p>Leverages a multi-agent architecture using LangGraph to coordinate specialized agents (Learning, Resume, Interview, Job Search) through TypedDict-based state management. The system employs sophisticated query categorization and routing while integrating with external tools like DuckDuckGo for job searches and dynamic content generation.</p> <h4>Additional Resources 📚</h4> <ul> <li><strong><a href="https://www.youtube.com/watch?v=IcKh0ltXO_8">YouTube Explanation</a></strong></li> </ul> </li> <li> <p><strong><a href="https://github.com/NirDiamant/GenAI_Agents/raw/main/all_agents_tutorials/project_manager_assistant_agent.ipynb">Project Manager Assistant Agent</a></strong></p> <h4>Overview 🔎</h4> <p>An AI agent designed to assist in project management tasks by automating the process of creating actionable tasks from project descriptions, identifying dependencies, scheduling work, and assigning tasks to team members based on expertise. The system includes risk assessment and self-reflection capabilities to optimize project plans through multiple iterations, aiming to minimize overall project risk.</p> <h4>Implementation 🛠️</h4> <p>Leverages LangGraph to orchestrate a workflow of specialized nodes including task generation, dependency mapping, scheduling, allocation, and risk assessment. Each node uses GPT-4o-mini for structured outputs following Pydantic models. The system implements a feedback loop for self-improvement, where risk scores trigger reflection cycles that generate insights to optimize the project plan. Visualization tools display Gantt charts of the generated schedules across iterations.</p> <h4>Additional Resources 📚</h4> <ul> <li><strong><a href="https://www.youtube.com/watch?v=R7YWjzg3LpI">YouTube Explanation</a></strong></li> </ul> </li> <li> <p><strong><a href="https://github.com/NirDiamant/GenAI_Agents/raw/main/all_agents_tutorials/ClauseAI.ipynb">Contract Analysis Assistant (ClauseAI)</a></strong></p> <h4>Overview 🔎</h4> <p>ClauseAI demonstrates how to build an AI-powered contract analysis system using a multi-agent approach. The system employs specialized AI agents for different aspects of contract review, from clause analysis to compliance checking, and leverages LangGraph for workflow orchestration and Pinecone for efficient clause retrieval and comparison.</p> <h4>Implementation 🛠️</h4> <p>Implements a sophisticated state-based workflow using LangGraph to coordinate multiple AI agents through contract analysis stages. The system features Pydantic models for data validation, vector storage with Pinecone for clause comparison, and LLM-based analysis for generating comprehensive contract reports. The implementation includes parallel processing capabilities and customizable report generation based on user requirements.</p> <h4>Additional Resources 📚</h4> <ul> <li><strong><a href="https://www.youtube.com/watch?v=rP8uv_tXuSI">YouTube Explanation</a></strong></li> </ul> </li> <li> <p><strong><a href="https://github.com/NirDiamant/GenAI_Agents/raw/main/all_agents_tutorials/e2e_testing_agent.ipynb">E2E Testing Agent</a></strong></p> <h4>Overview 🔎</h4> <p>The E2E Testing Agent demonstrates how to build an AI-powered system that converts natural language test instructions into executable end-to-end web tests. Using LangGraph for workflow orchestration and Playwright for browser automation, the system enables users to specify test cases in plain English while handling the complexity of test generation and execution.</p> <h4>Implementation 🛠️</h4> <p>Implements a structured workflow using LangGraph to coordinate test generation, validation, and execution. The system features TypedDict state management, integration with Playwright for browser automation, and LLM-based code generation for converting natural language instructions into executable test scripts. The implementation includes DOM state analysis, error handling, and comprehensive test reporting.</p> <h4>Additional Resources 📚</h4> <ul> <li><strong><a href="https://www.youtube.com/watch?v=jPXtpzcCtyA">YouTube Explanation</a></strong></li> </ul> </li> </ol> <h3>🎨 Creative and Content Generation Agents</h3> <ol start="15"> <li> <p><strong><a href="https://github.com/NirDiamant/GenAI_Agents/raw/main/all_agents_tutorials/gif_animation_generator_langgraph.ipynb">GIF Animation Generator Agent (LangGraph)</a></strong></p> <h4>Overview 🔎</h4> <p>A GIF animation generator that integrates LangGraph for workflow management, GPT-4 for text generation, and DALL-E for image creation, producing custom animations from user prompts.</p> <h4>Implementation 🛠️</h4> <p>Utilizes LangGraph to orchestrate a workflow that generates character descriptions, plots, and image prompts using GPT-4, creates images with DALL-E 3, and assembles them into GIFs using PIL. Employs asynchronous programming for efficient parallel processing.</p> </li> <li> <p><strong><a href="https://github.com/NirDiamant/GenAI_Agents/raw/main/all_agents_tutorials/tts_poem_generator_agent_langgraph.ipynb">TTS Poem Generator Agent (LangGraph)</a></strong></p> <h4>Overview 🔎</h4> <p>An advanced text-to-speech (TTS) agent using LangGraph and OpenAI's APIs classifies input text, processes it based on content type, and generates corresponding speech output.</p> <h4>Implementation 🛠️</h4> <p>Utilizes LangGraph to orchestrate a workflow that classifies input text using GPT models, applies content-specific processing, and converts the processed text to speech using OpenAI's TTS API. The system adapts its output based on the identified content type (general, poem, news, or joke).</p> </li> <li> <p><strong><a href="https://github.com/NirDiamant/GenAI_Agents/raw/main/all_agents_tutorials/music_compositor_agent_langgraph.ipynb">Music Compositor Agent (LangGraph)</a></strong></p> <h4>Overview 🔎</h4> <p>An AI Music Compositor using LangGraph and OpenAI's language models generates custom musical compositions based on user input. The system processes the input through specialized components, each contributing to the final musical piece, which is then converted to a playable MIDI file.</p> <h4>Implementation 🛠️</h4> <p>LangGraph orchestrates a workflow that transforms user input into a musical composition, using ChatOpenAI (GPT-4) to generate melody, harmony, and rhythm, which are then style-adapted. The final AI-generated composition is converted to a MIDI file using music21 and can be played back using pygame.</p> </li> <li> <p><strong><a href="https://github.com/NirDiamant/GenAI_Agents/raw/main/all_agents_tutorials/ContentIntelligence.ipynb">Content Intelligence: Multi-Platform Content Generation Agent</a></strong></p> <h4>Overview 🔎</h4> <p>Content Intelligence demonstrates how to build an advanced content generation system that transforms input text into platform-optimized content across multiple social media channels. The system employs LangGraph for workflow orchestration to analyze content, conduct research, and generate tailored content while maintaining brand consistency across different platforms.</p> <h4>Implementation 🛠️</h4> <p>Implements a sophisticated workflow using LangGraph to coordinate multiple specialized nodes (Summary, Research, Platform-Specific) through the content generation process. The system features TypedDict and Pydantic models for state management, integration with Tavily Search for research enhancement, and platform-specific content generation using GPT-4. The implementation includes parallel processing for multiple platforms and customizable content templates.</p> <h4>Additional Resources 📚</h4> <ul> <li><strong><a href="https://www.youtube.com/watch?v=DPMtPbKmWnU">YouTube Explanation</a></strong></li> </ul> </li> <li> <p><strong><a href="https://github.com/NirDiamant/GenAI_Agents/raw/main/all_agents_tutorials/business_meme_generator.ipynb">Business Meme Generator Using LangGraph and Memegen.link</a></strong></p> <h4>Overview 🔎</h4> <p>The Business Meme Generator demonstrates how to create an AI-powered system that generates contextually relevant memes based on company website analysis. Using LangGraph for workflow orchestration, the system combines Groq's Llama model for text analysis and the Memegen.link API to automatically produce brand-aligned memes for digital marketing.</p> <h4>Implementation 🛠️</h4> <p>Implements a state-managed workflow using LangGraph to coordinate website content analysis, meme concept generation, and image creation. The system features Pydantic models for data validation, asynchronous processing with aiohttp, and integration with external APIs (Groq, Memegen.link) to create a complete meme generation pipeline with customizable templates.</p> <h4>Additional Resources 📚</h4> <ul> <li><strong><a href="https://youtu.be/lsdDaGmkSCw?si=oF3CGfhbRqz1_Vm8">YouTube Explanation</a></strong></li> </ul> </li> <li> <p><strong><a href="https://github.com/NirDiamant/GenAI_Agents/raw/main/all_agents_tutorials/murder_mystery_agent_langgraph.ipynb">Murder Mystery Game with LLM Agents</a></strong></p> <h4>Overview 🔎</h4> <p>A text-based detective game that utilizes autonomous LLM agents as interactive characters in a procedurally generated murder mystery. Drawing inspiration from the UNBOUNDED paper, the system creates unique scenarios each time, with players taking on the role of Sherlock Holmes to solve the case through character interviews and deductive reasoning.</p> <h4>Implementation 🛠️</h4> <p>Leverages two LangGraph workflows - a main game loop for story/character generation and game progression, and a conversation sub-graph for character interactions. The system uses a combination of LLM-powered narrative generation, character AI, and structured game mechanics to create an immersive investigative experience with replayable storylines.</p> <h4>Additional Resources 📚</h4> <ul> <li><strong><a href="https://www.youtube.com/watch?v=_3cJYlk2EmA">YouTube Explanation</a></strong></li> </ul> </li> </ol> <h3>📊 Analysis and Information Processing Agents</h3> <ol start="21"> <li> <p><strong><a href="https://github.com/NirDiamant/GenAI_Agents/raw/main/all_agents_tutorials/memory_enhanced_conversational_agent.ipynb">Memory-Enhanced Conversational Agent</a></strong></p> <h4>Overview 🔎</h4> <p>A memory-enhanced conversational AI agent incorporates short-term and long-term memory systems to maintain context within conversations and across multiple sessions, improving interaction quality and personalization.</p> <h4>Implementation 🛠️</h4> <p>Integrates a language model with separate short-term and long-term memory stores, utilizes a prompt template incorporating both memory types, and employs a memory manager for storage and retrieval. The system includes an interaction loop that updates and utilizes memories for each response.</p> </li> <li> <p><strong><a href="https://github.com/NirDiamant/GenAI_Agents/raw/main/all_agents_tutorials/multi_agent_collaboration_system.ipynb">Multi-Agent Collaboration System</a></strong></p> <h4>Overview 🔎</h4> <p>A multi-agent collaboration system combining historical research with data analysis, leveraging large language models to simulate specialized agents working together to answer complex historical questions.</p> <h4>Implementation 🛠️</h4> <p>Utilizes a base Agent class to create specialized HistoryResearchAgent and DataAnalysisAgent, orchestrated by a HistoryDataCollaborationSystem. The system follows a five-step process: historical context provision, data needs identification, historical data provision, data analysis, and final synthesis.</p> </li> <li> <p><strong><a href="https://github.com/NirDiamant/GenAI_Agents/raw/main/all_agents_tutorials/self_improving_agent.ipynb">Self-Improving Agent</a></strong></p> <h4>Overview 🔎</h4> <p>A Self-Improving Agent using LangChain engages in conversations, learns from interactions, and continuously improves its performance over time through reflection and adaptation.</p> <h4>Implementation 🛠️</h4> <p>Integrates a language model with chat history management, response generation, and a reflection mechanism. The system employs a learning system that incorporates insights from reflection to enhance future performance, creating a continuous improvement loop.</p> </li> <li> <p><strong><a href="https://github.com/NirDiamant/GenAI_Agents/raw/main/all_agents_tutorials/task_oriented_agent.ipynb">Task-Oriented Agent</a></strong></p> <h4>Overview 🔎</h4> <p>A language model application using LangChain that summarizes text and translates the summary to Spanish, combining custom functions, structured tools, and an agent for efficient text processing.</p> <h4>Implementation 🛠️</h4> <p>Utilizes custom functions for summarization and translation, wrapped as structured tools. Employs a prompt template to guide the agent, which orchestrates the use of tools. An agent executor manages the process, taking input text and producing both an English summary and its Spanish translation.</p> </li> <li> <p><strong><a href="https://github.com/NirDiamant/GenAI_Agents/raw/main/all_agents_tutorials/search_the_internet_and_summarize.ipynb">Internet Search and Summarize Agent</a></strong></p> <h4>Overview 🔎</h4> <p>An intelligent web research assistant that combines web search capabilities with AI-powered summarization, automating the process of gathering information from the internet and distilling it into concise, relevant summaries.</p> <h4>Implementation 🛠️</h4> <p>Integrates a web search module using DuckDuckGo's API, a result parser, and a text summarization engine leveraging OpenAI's language models. The system performs site-specific or general searches, extracts relevant content, generates concise summaries, and compiles attributed results for efficient information retrieval and synthesis.</p> </li> <li> <p><strong><a href="https://github.com/NirDiamant/GenAI_Agents/raw/main/all_agents_tutorials/research_team_autogen.ipynb">Multi agent research team - Autogen</a></strong></p> <h4>Overview 🔎</h4> <p>This technique explores a multi-agent system for collaborative research using the AutoGen library. It employs agents to solve tasks collaboratively, focusing on efficient execution and quality assurance. The system enhances research by distributing tasks among specialized agents.</p> <h4>Implementation 🛠️</h4> <p>Agents are configured with specific roles using the GPT-4 model, including admin, developer, planner, executor, and quality assurance. Interaction management ensures orderly communication with defined transitions. Task execution involves collaborative planning, coding, execution, and quality checking, demonstrating a scalable framework for various domains.</p> <h4>Additional Resources 📚</h4> <ul> <li><strong><a href="https://github.com/yanivvak/dream-team">comprehensive solution with UI</a></strong></li> <li><strong><a href="https://techcommunity.microsoft.com/t5/ai-azure-ai-services-blog/build-your-dream-team-with-autogen/ba-p/4157961">Blogpost</a></strong></li> </ul> </li> <li> <p><strong><a href="https://github.com/NirDiamant/GenAI_Agents/raw/main/all_agents_tutorials/sales_call_analyzer_agent.ipynb">Sales Call Analyzer</a></strong></p> <h4>Overview 🔎</h4> <p>An intelligent system that automates the analysis of sales call recordings by combining audio transcription with advanced natural language processing. The analyzer transcribes audio using OpenAI's Whisper, processes the text using NLP techniques, and generates comprehensive reports including sentiment analysis, key phrases, pain points, and actionable recommendations to improve sales performance.</p> <h4>Implementation 🛠️</h4> <p>Utilizes multiple components in a structured workflow: OpenAI Whisper for audio transcription, CrewAI for task automation and agent management, and LangChain for orchestrating the analysis pipeline. The system processes audio through a series of steps from transcription to detailed analysis, leveraging custom agents and tasks to generate structured JSON reports containing insights about customer sentiment, sales opportunities, and recommended improvements.</p> <h4>Additional Resources 📚</h4> <ul> <li><strong><a href="https://www.youtube.com/watch?v=SKAt_PvznDw">YouTube Explanation</a></strong></li> </ul> </li> <li> <p><strong><a href="https://github.com/NirDiamant/GenAI_Agents/raw/main/all_agents_tutorials/Weather_Disaster_Management_AI_AGENT.ipynb">Weather Emergency &amp; Response System</a></strong></p> <h4>Overview 🔎</h4> <p>A comprehensive system demonstrating two agent graph implementations for weather emergency response: a real-time graph processing live weather data, and a hybrid graph combining real and simulated data for testing high-severity scenarios. The system handles complete workflow from data gathering through emergency plan generation, with automated notifications and human verification steps.</p> <h4>Implementation 🛠️</h4> <p>Utilizes LangGraph for orchestrating complex workflows with state management, integrating OpenWeatherMap API for real-time data, and Gemini for analysis and response generation. The system incorporates email notifications, social media monitoring simulation, and severity-based routing with configurable human verification for low/medium severity events.</p> <h4>Additional Resources 📚</h4> <ul> <li><strong><a href="https://www.youtube.com/watch?v=AgiOAJl_apw">YouTube Explanation</a></strong></li> </ul> </li> <li> <p><strong><a href="https://github.com/NirDiamant/GenAI_Agents/raw/main/all_agents_tutorials/self_healing_code.ipynb">Self-Healing Codebase System</a></strong></p> <h4>Overview 🔎</h4> <p>An intelligent system that automatically detects, diagnoses, and fixes runtime code errors using LangGraph workflow orchestration and ChromaDB vector storage. The system maintains a memory of encountered bugs and their fixes through vector embeddings, enabling pattern recognition for similar errors across the codebase.</p> <h4>Implementation 🛠️</h4> <p>Utilizes a state-based graph workflow that processes function definitions and runtime arguments through specialized nodes for error detection, code analysis, and fix generation. Incorporates ChromaDB for vector-based storage of bug patterns and fixes, with automated search and retrieval capabilities for similar error patterns, while maintaining code execution safety through structured validation steps.</p> <h4>Additional Resources 📚</h4> <ul> <li><strong><a href="https://www.youtube.com/watch?v=ga7ShvIXOvE">YouTube Explanation</a></strong></li> </ul> </li> <li> <p><strong><a href="https://github.com/NirDiamant/GenAI_Agents/raw/main/all_agents_tutorials/database_discovery_fleet.ipynb">DataScribe: AI-Powered Schema Explorer</a></strong></p> <h4>Overview 🔎</h4> <p>An intelligent agent system that enables intuitive exploration and querying of relational databases through natural language interactions. The system utilizes a fleet of specialized agents, coordinated by a stateful Supervisor, to handle schema discovery, query planning, and data analysis tasks while maintaining contextual understanding through vector-based relationship graphs.</p> <h4>Implementation 🛠️</h4> <p>Leverages LangGraph for orchestrating a multi-agent workflow including discovery, inference, and planning agents, with NetworkX for relationship graph visualization and management. The system incorporates dynamic state management through TypedDict classes, maintains database context between sessions using a db_graph attribute, and includes safety measures to prevent unauthorized database modifications.</p> </li> </ol> <h3>📰 News and Information Agents</h3> <ol start="31"> <li> <p><strong><a href="https://github.com/NirDiamant/GenAI_Agents/raw/main/all_agents_tutorials/news_tldr_langgraph.ipynb">News TL;DR using LangGraph</a></strong></p> <h4>Overview 🔎</h4> <p>A news summarization system that generates concise TL;DR summaries of current events based on user queries. The system leverages large language models for decision making and summarization while integrating with news APIs to access up-to-date content, allowing users to quickly catch up on topics of interest through generated bullet-point summaries.</p> <h4>Implementation 🛠️</h4> <p>Utilizes LangGraph to orchestrate a workflow combining multiple components: GPT-4o-mini for generating search terms and article summaries, NewsAPI for retrieving article metadata, BeautifulSoup for web scraping article content, and Asyncio for concurrent processing. The system follows a structured pipeline from query processing through article selection and summarization, managing the flow between components to produce relevant TL;DRs of current news articles.</p> <h4>Additional Resources 📚</h4> <ul> <li><strong><a href="https://www.youtube.com/watch?v=0fRxW6miybI">YouTube Explanation</a></strong></li> </ul> </li> <li> <p><strong><a href="https://github.com/NirDiamant/GenAI_Agents/raw/main/all_agents_tutorials/ainsight_langgraph.ipynb">AInsight: AI/ML Weekly News Reporter</a></strong></p> <h4>Overview 🔎</h4> <p>AInsight demonstrates how to build an intelligent news aggregation and summarization system using a multi-agent architecture. The system employs three specialized agents (NewsSearcher, Summarizer, Publisher) to automatically collect, process and summarize AI/ML news for general audiences through LangGraph-based workflow orchestration.</p> <h4>Implementation 🛠️</h4> <p>Implements a state-managed multi-agent system using LangGraph to coordinate the news collection (Tavily API), technical content summarization (GPT-4), and report generation processes. The system features modular architecture with TypedDict-based state management, external API integration, and markdown report generation with customizable templates.</p> <h4>Additional Resources 📚</h4> <ul> <li><strong><a href="https://www.youtube.com/watch?v=kH5S1is2D_0">YouTube Explanation</a></strong></li> </ul> </li> <li> <p><strong><a href="https://github.com/NirDiamant/GenAI_Agents/raw/main/all_agents_tutorials/journalism_focused_ai_assistant_langgraph.ipynb">Journalism-Focused AI Assistant</a></strong></p> <h4>Overview 🔎</h4> <p>A specialized AI assistant that helps journalists tackle modern journalistic challenges like misinformation, bias, and information overload. The system integrates fact-checking, tone analysis, summarization, and grammar review tools to enhance the accuracy and efficiency of journalistic work while maintaining ethical reporting standards.</p> <h4>Implementation 🛠️</h4> <p>Leverages LangGraph to orchestrate a workflow of specialized components including language models for analysis and generation, web search integration via DuckDuckGo's API, document parsing tools like PyMuPDFLoader and WebBaseLoader, text splitting with RecursiveCharacterTextSplitter, and structured JSON outputs. Each component works together through a unified workflow to analyze content, verify facts, detect bias, extract quotes, and generate comprehensive reports.</p> </li> <li> <p><strong><a href="https://github.com/YourUsername/GenAI_Agents/raw/main/all_agents_tutorials/blog_writer_swarm.ipynb">Blog Writer (Open AI Swarm)</a></strong></p> <h4>Overview 🔎</h4> <p>A multi-agent system for collaborative blog post creation using OpenAI's Swarm package. It leverages specialized agents to perform research, planning, writing, and editing tasks efficiently.</p> <h4>Implementation 🛠️</h4> <p>Utilizes OpenAI's Swarm Package to manage agent interactions. Includes an admin, researcher, planner, writer, and editor, each with specific roles. The system follows a structured workflow: topic setting, outlining, research, drafting, and editing. This approach enhances content creation through task distribution, specialization, and collaborative problem-solving.</p> <h4>Additional Resources 📚</h4> <ul> <li><strong><a href="https://github.com/openai/swarm">Swarm Repo</a></strong></li> </ul> </li> <li> <p><strong><a href="https://github.com/NirDiamant/GenAI_Agents/raw/main/all_agents_tutorials/generate_podcast_agent_langgraph.ipynb">Podcast Internet Search and Generate Agent 🎙️</a></strong></p> <h4>Overview 🔎</h4> <p>A two step agent that first searches the internet for a given topic and then generates a podcast on the topic found. The search step uses a search agent and search function to find the most relevant information. The second step uses a podcast generation agent and generation function to create a podcast on the topic found.</p> <h4>Implementation 🛠️</h4> <p>Utilizes LangGraph to orchestrate a two-step workflow. The first step involves a search agent and function to gather information from the internet. The second step uses a podcast generation agent and function to create a podcast based on the gathered information.</p> </li> </ol> <h3>🛍️ Shopping and Product Analysis Agents</h3> <ol start="36"> <li> <p><strong><a href="https://github.com/NirDiamant/GenAI_Agents/raw/main/all_agents_tutorials/ShopGenie.ipynb">ShopGenie - Redefining Online Shopping Customer Experience</a></strong></p> <h4>Overview 🔎</h4> <p>An AI-powered shopping assistant that helps customers make informed purchasing decisions even without domain expertise. The system analyzes product information from multiple sources, compares specifications and reviews, identifies the best option based on user needs, and delivers recommendations through email with supporting video reviews, creating a comprehensive shopping experience.</p> <h4>Implementation 🛠️</h4> <p>Uses LangGraph to orchestrate a workflow combining Tavily for web search, Llama-3.1-70B for structured data analysis and product comparison, and YouTube API for review video retrieval. The system processes search results through multiple nodes including schema mapping, product comparison, review identification, and email generation. Key features include structured Pydantic models for consistent data handling, retry mechanisms for robust API interactions, and email delivery through SMTP for sharing recommendations.</p> <h4>Additional Resources 📚</h4> <ul> <li><strong><a href="https://www.youtube.com/watch?v=Js0sK0u53dQ">YouTube Explanation</a></strong></li> </ul> </li> <li> <p><strong><a href="https://github.com/NirDiamant/GenAI_Agents/raw/main/all_agents_tutorials/car_buyer_agent_langgraph.ipynb">Car Buyer AI Agent</a></strong></p> <h4>Overview 🔎</h4> <p>The Smart Product Buyer AI Agent demonstrates how to build an intelligent system that assists users in making informed purchasing decisions. Using LangGraph and LLM-based intelligence, the system processes user requirements, scrapes product listings from websites like AutoTrader, and provides detailed analysis and recommendations for car purchases.</p> <h4>Implementation 🛠️</h4> <p>Implements a state-based workflow using LangGraph to coordinate user interaction, web scraping, and decision support. The system features TypedDict state management, async web scraping with Playwright, and integrates with external APIs for comprehensive product analysis. The implementation includes a Gradio interface for real-time chat interaction and modular scraper architecture for easy extension to additional product categories.</p> <h4>Additional Resources 📚</h4> <ul> <li><strong><a href="https://www.youtube.com/watch?v=I61I1fp0qys">YouTube Explanation</a></strong></li> </ul> </li> </ol> <h3>🎯 Task Management and Productivity Agents</h3> <ol start="38"> <li> <p><strong><a href="https://github.com/NirDiamant/GenAI_Agents/raw/main/all_agents_tutorials/taskifier.ipynb">Taskifier - Intelligent Task Allocation &amp; Management</a></strong></p> <h4>Overview 🔎</h4> <p>An intelligent task management system that analyzes user work styles and creates personalized task breakdown strategies, born from the observation that procrastination often stems from task ambiguity among students and early-career professionals. The system evaluates historical work patterns, gathers relevant task information through web search, and generates customized step-by-step approaches to optimize productivity and reduce workflow paralysis.</p> <h4>Implementation 🛠️</h4> <p>Leverages LangGraph for orchestrating a multi-step workflow including work style analysis, information gathering via Tavily API, and customized plan generation. The system maintains state through the process, integrating historical work pattern data with fresh task research to output detailed, personalized task execution plans aligned with the user's natural working style.</p> <h4>Additional Resources 📚</h4> <ul> <li><strong><a href="https://www.youtube.com/watch?v=1W_p_RVi9KE&amp;t=25s">YouTube Explanation</a></strong></li> </ul> </li> <li> <p><strong><a href="https://github.com/NirDiamant/GenAI_Agents/raw/main/all_agents_tutorials/grocery_management_agents_system.ipynb">Grocery Management Agents System</a></strong></p> <h4>Overview 🔎</h4> <p>A multi-agent system built with CrewAI that automates grocery management tasks including receipt interpretation, expiration date tracking, inventory management, and recipe recommendations. The system uses specialized agents to extract data from receipts, estimate product shelf life, track consumption, and suggest recipes to minimize food waste.</p> <h4>Implementation 🛠️</h4> <p>Implements four specialized agents using CrewAI - a Receipt Interpreter that extracts item details from receipts, an Expiration Date Estimator that determines shelf life using online sources, a Grocery Tracker that maintains inventory based on consumption, and a Recipe Recommender that suggests meals using available ingredients. Each agent has specific tools and tasks orchestrated through a crew workflow.</p> <h4>Additional Resources 📚</h4> <ul> <li><strong><a href="https://www.youtube.com/watch?v=FlMu5pKSaHI">YouTube Explanation</a></strong></li> </ul> </li> </ol> <h3>🔍 Quality Assurance and Testing Agents</h3> <ol start="40"> <li> <p><strong><a href="https://github.com/NirDiamant/GenAI_Agents/raw/main/all_agents_tutorials/graph_inspector_system_langgraph.ipynb">LangGraph-Based Systems Inspector</a></strong></p> <h4>Overview 🔎</h4> <p>A comprehensive testing and validation tool for LangGraph-based applications that automatically analyzes system architecture, generates test cases, and identifies potential vulnerabilities through multi-agent inspection. The inspector employs specialized AI testers to evaluate different aspects of the system, from basic functionality to security concerns and edge cases.</p> <h4>Implementation 🛠️</h4> <p>Integrates LangGraph for workflow orchestration, multiple LLM-powered testing agents, and a structured evaluation pipeline that includes static analysis, test case generation, and results verification. The system uses Pydantic for data validation, NetworkX for graph representation, and implements a modular architecture that allows for parallel test execution and comprehensive result analysis.</p> <h4>Additional Resources 📚</h4> <ul> <li><strong><a href="https://www.youtube.com/watch?v=fQd6lXc-Y9A">YouTube Explanation</a></strong></li> <li><strong><a href="https://open.substack.com/pub/diamantai/p/langgraph-systems-inspector-an-ai?r=336pe4&amp;utm_campaign=post&amp;utm_medium=web&amp;showWelcomeOnShare=false">Blog Post</a></strong></li> </ul> </li> <li> <p><strong><a href="https://github.com/NirDiamant/GenAI_Agents/raw/main/all_agents_tutorials/EU_Green_Compliance_FAQ_Bot.ipynb">EU Green Deal FAQ Bot</a></strong></p> <h4>Overview 🔎</h4> <p>The EU Green Deal FAQ Bot demonstrates how to build a RAG-based AI agent that helps businesses understand EU green deal policies. The system processes complex regulatory documents into manageable chunks and provides instant, accurate answers to common questions about environmental compliance, emissions reporting, and waste management requirements.</p> <h4>Implementation 🛠️</h4> <p>Implements a sophisticated RAG pipeline using FAISS vectorstore for document storage, semantic chunking for preprocessing, and multiple specialized agents (Retriever, Summarizer, Evaluator) for query processing. The system features query rephrasing for improved accuracy, cross-reference with gold Q&amp;A datasets for answer validation, and comprehensive evaluation metrics to ensure response quality and relevance.</p> <h4>Additional Resources 📚</h4> <ul> <li><strong><a href="https://www.youtube.com/watch?v=Av0kBQjwU-Y">YouTube Explanation</a></strong></li> </ul> </li> <li> <p><strong><a href="https://github.com/NirDiamant/GenAI_Agents/raw/main/all_agents_tutorials/systematic_review_of_scientific_articles.ipynb">Systematic Review Automation System + Paper Draft Creation</a></strong></p> <h4>Overview 🔎</h4> <p>A comprehensive system for automating academic systematic reviews using a directed graph architecture and LangChain components. The system generates complete, publication-ready systematic review papers, automatically processing everything from literature search through final draft generation with multiple revision cycles.</p> <h4>Implementation 🛠️</h4> <p>Utilizes a state-based graph workflow that handles paper search and selection (up to 3 papers), PDF processing, and generates a complete academic paper with all standard sections (abstract, introduction, methods, results, conclusions, references). The system incorporates multiple revision cycles with automated critique and improvement phases, all orchestrated through LangGraph state management.</p> <h4>Additional Resources 📚</h4> <ul> <li><strong><a href="https://www.youtube.com/watch?v=qi35mGGkCtg">YouTube Explanation</a></strong></li> </ul> </li> </ol> <h3>🌟 Special Advanced Technique 🌟</h3> <ol start="43"> <li> <p><strong><a href="https://github.com/NirDiamant/Controllable-RAG-Agent">Sophisticated Controllable Agent for Complex RAG Tasks 🤖</a></strong></p> <h4>Overview 🔎</h4> <p>An advanced RAG solution designed to tackle complex questions that simple semantic similarity-based retrieval cannot solve. This approach uses a sophisticated deterministic graph as the "brain" 🧠 of a highly controllable autonomous agent, capable of answering non-trivial questions from your own data.</p> <h4>Implementation 🛠️</h4> <p>• Implement a multi-step process involving question anonymization, high-level planning, task breakdown, adaptive information retrieval and question answering, continuous re-planning, and rigorous answer verification to ensure grounded and accurate responses.</p> </li> </ol> <h2>Getting Started</h2> <p>To begin exploring and building GenAI agents:</p> <ol> <li>Clone this repository: <pre><code>git clone https://github.com/NirDiamant/GenAI_Agents.git </code></pre> </li> <li>Navigate to the technique you're interested in: <pre><code>cd all_agents_tutorials/technique-name </code></pre> </li> <li>Follow the detailed implementation guide in each technique's notebook.</li> </ol> <h2>Contributing</h2> <p>We welcome contributions from the community! If you have a new technique or improvement to suggest:</p> <ol> <li>Fork the repository</li> <li>Create your feature branch: <code>git checkout -b feature/AmazingFeature</code></li> <li>Commit your changes: <code>git commit -m 'Add some AmazingFeature'</code></li> <li>Push to the branch: <code>git push origin feature/AmazingFeature</code></li> <li>Open a pull request</li> </ol> <h2>Contributors</h2> <p><a href="https://github.com/NirDiamant/GenAI_Agents/graphs/contributors"><img src="https://contrib.rocks/image?repo=NirDiamant/GenAI_Agents" alt="Contributors"></a></p> <h2>License</h2> <p>This project is licensed under a custom non-commercial license - see the <a href="https://raw.githubusercontent.com/NirDiamant/GenAI_Agents/main/LICENSE">LICENSE</a> file for details.</p> <hr> <p>⭐️ If you find this repository helpful, please consider giving it a star!</p> <p>Keywords: GenAI, Generative AI, Agents, NLP, AI, Machine Learning, Natural Language Processing, LLM, Conversational AI, Task-Oriented AI</p> + \ No newline at end of file diff --git a/kaitai-struct/daily/index.xml b/kaitai-struct/daily/index.xml index 0458e2696f8..a20198ba0e4 100644 --- a/kaitai-struct/daily/index.xml +++ b/kaitai-struct/daily/index.xml @@ -1,7 +1,7 @@ GitHub Kaitai Struct Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:31:56Z + 2024-12-20T01:32:01Z Daily Trending of Kaitai Struct in GitHub \ No newline at end of file diff --git a/kakounescript/daily/index.xml b/kakounescript/daily/index.xml index 3e4c81e95f1..362baecb0a2 100644 --- a/kakounescript/daily/index.xml +++ b/kakounescript/daily/index.xml @@ -1,7 +1,7 @@ GitHub KakouneScript Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:31:56Z + 2024-12-20T01:32:01Z Daily Trending of KakouneScript in GitHub \ No newline at end of file diff --git a/kicad-layout/daily/index.xml b/kicad-layout/daily/index.xml index 085a87000a9..1ca66fe57e7 100644 --- a/kicad-layout/daily/index.xml +++ b/kicad-layout/daily/index.xml @@ -1,7 +1,7 @@ GitHub KiCad Layout Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:32:01Z + 2024-12-20T01:32:09Z Daily Trending of KiCad Layout in GitHub \ No newline at end of file diff --git a/kicad-legacy-layout/daily/index.xml b/kicad-legacy-layout/daily/index.xml index 936a39eea1e..ced56f467ee 100644 --- a/kicad-legacy-layout/daily/index.xml +++ b/kicad-legacy-layout/daily/index.xml @@ -1,7 +1,7 @@ GitHub KiCad Legacy Layout Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:32:02Z + 2024-12-20T01:32:09Z Daily Trending of KiCad Legacy Layout in GitHub \ No newline at end of file diff --git a/kicad-schematic/daily/index.xml b/kicad-schematic/daily/index.xml index b711f44a8a1..03250f5bc33 100644 --- a/kicad-schematic/daily/index.xml +++ b/kicad-schematic/daily/index.xml @@ -1,7 +1,7 @@ GitHub KiCad Schematic Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:32:01Z + 2024-12-20T01:32:09Z Daily Trending of KiCad Schematic in GitHub \ No newline at end of file diff --git a/kit/daily/index.xml b/kit/daily/index.xml index fb7d741d300..33860e81de1 100644 --- a/kit/daily/index.xml +++ b/kit/daily/index.xml @@ -1,7 +1,7 @@ GitHub Kit Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:32:02Z + 2024-12-20T01:32:11Z Daily Trending of Kit in GitHub \ No newline at end of file diff --git a/kotlin/daily/index.xml b/kotlin/daily/index.xml index b0467cf9ccb..7b0fc059a12 100644 --- a/kotlin/daily/index.xml +++ b/kotlin/daily/index.xml @@ -1,14 +1,7 @@ GitHub Kotlin Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:32:05Z + 2024-12-20T01:32:12Z Daily Trending of Kotlin in GitHub - - mostafaalagamy/Metrolist - 2024-12-19T01:32:05Z - tag:github.com,2024-12-19:/mostafaalagamy/Metrolist - - <p>YouTube Music client for Android</p><hr><div align="center"> <img src="https://github.com/mostafaalagamy/Metrolist/raw/main/fastlane/metadata/android/ic_launcher_github.webp" width="160" height="160" style="display: block; margin: 0 auto"> <h1>Metrolist</h1> <p>YouTube Music client for Android</p> <h1>Screenshots</h1> <img src="https://github.com/mostafaalagamy/Metrolist/raw/main/fastlane/metadata/android/images/screenshots/screenshot_1.jpeg" width="30%"> <img src="https://github.com/mostafaalagamy/Metrolist/raw/main/fastlane/metadata/android/images/screenshots/screenshot_2.jpeg" width="30%"> <img src="https://github.com/mostafaalagamy/Metrolist/raw/main/fastlane/metadata/android/images/screenshots/screenshot_3.jpeg" width="30%"> <img src="https://github.com/mostafaalagamy/Metrolist/raw/main/fastlane/metadata/android/images/screenshots/screenshot_4.jpeg" width="30%"> <img src="https://github.com/mostafaalagamy/Metrolist/raw/main/fastlane/metadata/android/images/screenshots/screenshot_5.jpeg" width="30%"> <img src="https://github.com/mostafaalagamy/Metrolist/raw/main/fastlane/metadata/android/images/screenshots/screenshot_6.jpeg" width="30%"> <p></p> <p><a href="https://github.com/mostafaalagamy/Metrolist/releases"><img src="https://img.shields.io/github/v/release/mostafaalagamy/Metrolist?style=for-the-badge" alt="Latest release"></a> <a href="https://github.com/mostafaalagamy/Metrolist/raw/main/LICENSE"><img src="https://img.shields.io/github/license/mostafaalagamy/metrolist?style=for-the-badge" alt="GitHub license"></a></p> </div> <div align="center"> <h1>Features</h1> </div> <ul> <li>Play any song or video from YT Music</li> <li>Background playback</li> <li>Personalized quick picks</li> <li>Library management</li> <li>Download and cache songs for offline playback</li> <li>Search for songs, albums, artists, videos and playlists</li> <li>Live lyrics</li> <li>Login support</li> <li>Skip silence</li> <li>Import playlists</li> <li>Audio normalization</li> <li>Adjust tempo/pitch</li> <li>Local playlist management</li> <li>Reorder songs in playlist or queue</li> <li>Light - Dark - black - Dynamic theme</li> <li>Sleep timer</li> <li>Material 3</li> <li>etc.</li> </ul> <div align="center"> <h1>Download Now</h1> <p><a href="https://github.com/mostafaalagamy/Metrolist/releases/latest/download/Metrolist.apk"><img src="https://raw.githubusercontent.com/WSTxda/QP-Gallery-Releases/master/Images/GitHub.svg?sanitize=true" alt="Get it on GitHub" height="80"></a></p> </div> <blockquote> <p><strong>Warning</strong></p> <p>If you're in a region where YouTube Music is not supported, you won't be able to use this app <em><strong>unless</strong></em> you have a proxy or VPN to connect to a YTM supported region.</p> </blockquote> <div align="center"> <h1> Q: Why Metrolist isn't showing in Android Auto? </h1> </div> <ol> <li>Go to Android Auto's settings and tap multiple times on the version in the bottom to enable developer settings</li> <li>In the three dots menu at the top-right of the screen, click "Developer settings"</li> <li>Enable "Unknown sources"</li> </ol> <div align="center"> <h1>Disclaimer</h1> </div> <p>This project and its contents are not affiliated with, funded, authorized, endorsed by, or in any way associated with YouTube, Google LLC, Metrolist Group LLC or any of its affiliates and subsidiaries.</p> <p>Any trademark, service mark, trade name, or other intellectual property rights used in this project are owned by the respective owners.</p> - \ No newline at end of file diff --git a/krl/daily/index.xml b/krl/daily/index.xml index 9a5aeb020c8..d9c8fe4e5e7 100644 --- a/krl/daily/index.xml +++ b/krl/daily/index.xml @@ -1,7 +1,7 @@ GitHub KRL Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:32:03Z + 2024-12-20T01:32:10Z Daily Trending of KRL in GitHub \ No newline at end of file diff --git a/kusto/daily/index.xml b/kusto/daily/index.xml index 9fffb05fb49..7a76c9f18da 100644 --- a/kusto/daily/index.xml +++ b/kusto/daily/index.xml @@ -1,7 +1,7 @@ GitHub Kusto Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:32:08Z + 2024-12-20T01:32:16Z Daily Trending of Kusto in GitHub \ No newline at end of file diff --git a/kvlang/daily/index.xml b/kvlang/daily/index.xml index 5c27d415410..df529194f8a 100644 --- a/kvlang/daily/index.xml +++ b/kvlang/daily/index.xml @@ -1,7 +1,7 @@ GitHub kvlang Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:32:08Z + 2024-12-20T01:32:15Z Daily Trending of kvlang in GitHub \ No newline at end of file diff --git a/labview/daily/index.xml b/labview/daily/index.xml index 047307e755a..b7173e462eb 100644 --- a/labview/daily/index.xml +++ b/labview/daily/index.xml @@ -1,7 +1,7 @@ GitHub LabVIEW Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:32:08Z + 2024-12-20T01:32:15Z Daily Trending of LabVIEW in GitHub \ No newline at end of file diff --git a/lark/daily/index.xml b/lark/daily/index.xml index aad48acdc2b..ff8d37a2959 100644 --- a/lark/daily/index.xml +++ b/lark/daily/index.xml @@ -1,7 +1,7 @@ GitHub Lark Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:32:08Z + 2024-12-20T01:32:15Z Daily Trending of Lark in GitHub \ No newline at end of file diff --git a/lasso/daily/index.xml b/lasso/daily/index.xml index 69b51a682d9..e613183bd4d 100644 --- a/lasso/daily/index.xml +++ b/lasso/daily/index.xml @@ -1,7 +1,7 @@ GitHub Lasso Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:32:09Z + 2024-12-20T01:32:17Z Daily Trending of Lasso in GitHub \ No newline at end of file diff --git a/latte/daily/index.xml b/latte/daily/index.xml index 43d3efd5074..744e81d6329 100644 --- a/latte/daily/index.xml +++ b/latte/daily/index.xml @@ -1,7 +1,7 @@ GitHub Latte Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:32:09Z + 2024-12-20T01:32:17Z Daily Trending of Latte in GitHub \ No newline at end of file diff --git a/lean/daily/index.xml b/lean/daily/index.xml index c2ee67c18d5..ba214f3452d 100644 --- a/lean/daily/index.xml +++ b/lean/daily/index.xml @@ -1,7 +1,7 @@ GitHub Lean Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:32:10Z + 2024-12-20T01:32:18Z Daily Trending of Lean in GitHub \ No newline at end of file diff --git a/less/daily/index.xml b/less/daily/index.xml index 366b6bb3852..9b6ef8f0a1c 100644 --- a/less/daily/index.xml +++ b/less/daily/index.xml @@ -1,7 +1,7 @@ GitHub Less Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:32:12Z + 2024-12-20T01:32:19Z Daily Trending of Less in GitHub \ No newline at end of file diff --git a/lex/daily/index.xml b/lex/daily/index.xml index bd27da1a367..74086c80ea3 100644 --- a/lex/daily/index.xml +++ b/lex/daily/index.xml @@ -1,7 +1,7 @@ GitHub Lex Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:32:11Z + 2024-12-20T01:32:19Z Daily Trending of Lex in GitHub \ No newline at end of file diff --git a/lfe/daily/index.xml b/lfe/daily/index.xml index dc060eae73d..d54c15e9177 100644 --- a/lfe/daily/index.xml +++ b/lfe/daily/index.xml @@ -1,7 +1,7 @@ GitHub LFE Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:32:11Z + 2024-12-20T01:32:19Z Daily Trending of LFE in GitHub \ No newline at end of file diff --git a/ligolang/daily/index.xml b/ligolang/daily/index.xml index 370216119bd..2e968d817aa 100644 --- a/ligolang/daily/index.xml +++ b/ligolang/daily/index.xml @@ -1,7 +1,7 @@ GitHub LigoLANG Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:32:11Z + 2024-12-20T01:32:18Z Daily Trending of LigoLANG in GitHub \ No newline at end of file diff --git a/lilypond/daily/index.xml b/lilypond/daily/index.xml index 14d23e76a3f..37ea6061d56 100644 --- a/lilypond/daily/index.xml +++ b/lilypond/daily/index.xml @@ -1,7 +1,7 @@ GitHub LilyPond Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:32:13Z + 2024-12-20T01:32:20Z Daily Trending of LilyPond in GitHub \ No newline at end of file diff --git a/limbo/daily/index.xml b/limbo/daily/index.xml index 3c4223f2c91..a861d567f77 100644 --- a/limbo/daily/index.xml +++ b/limbo/daily/index.xml @@ -1,7 +1,7 @@ GitHub Limbo Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:32:13Z + 2024-12-20T01:32:20Z Daily Trending of Limbo in GitHub \ No newline at end of file diff --git a/linker-script/daily/index.xml b/linker-script/daily/index.xml index a2f09ebbd2d..40606b8990a 100644 --- a/linker-script/daily/index.xml +++ b/linker-script/daily/index.xml @@ -1,7 +1,7 @@ GitHub Linker Script Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:32:13Z + 2024-12-20T01:32:21Z Daily Trending of Linker Script in GitHub \ No newline at end of file diff --git a/linux-kernel-module/daily/index.xml b/linux-kernel-module/daily/index.xml index b1431ac7733..08ec5f0bcec 100644 --- a/linux-kernel-module/daily/index.xml +++ b/linux-kernel-module/daily/index.xml @@ -1,7 +1,7 @@ GitHub Linux Kernel Module Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:32:13Z + 2024-12-20T01:32:21Z Daily Trending of Linux Kernel Module in GitHub \ No newline at end of file diff --git a/liquid/daily/index.xml b/liquid/daily/index.xml index 48a72a3e01d..ef6ba4259a5 100644 --- a/liquid/daily/index.xml +++ b/liquid/daily/index.xml @@ -1,7 +1,7 @@ GitHub Liquid Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:32:15Z + 2024-12-20T01:32:23Z Daily Trending of Liquid in GitHub \ No newline at end of file diff --git a/literate-agda/daily/index.xml b/literate-agda/daily/index.xml index 4586a019f3b..3ba29155273 100644 --- a/literate-agda/daily/index.xml +++ b/literate-agda/daily/index.xml @@ -1,7 +1,7 @@ GitHub Literate Agda Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:32:15Z + 2024-12-20T01:32:22Z Daily Trending of Literate Agda in GitHub \ No newline at end of file diff --git a/literate-coffeescript/daily/index.xml b/literate-coffeescript/daily/index.xml index fa0a025665a..940937fdce2 100644 --- a/literate-coffeescript/daily/index.xml +++ b/literate-coffeescript/daily/index.xml @@ -1,7 +1,7 @@ GitHub Literate CoffeeScript Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:32:14Z + 2024-12-20T01:32:22Z Daily Trending of Literate CoffeeScript in GitHub \ No newline at end of file diff --git a/literate-haskell/daily/index.xml b/literate-haskell/daily/index.xml index 1bce0ac4ef2..b8abcf1b5a6 100644 --- a/literate-haskell/daily/index.xml +++ b/literate-haskell/daily/index.xml @@ -1,7 +1,7 @@ GitHub Literate Haskell Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:32:14Z + 2024-12-20T01:32:22Z Daily Trending of Literate Haskell in GitHub \ No newline at end of file diff --git a/livescript/daily/index.xml b/livescript/daily/index.xml index e37db7fd05c..e1108fb4ef5 100644 --- a/livescript/daily/index.xml +++ b/livescript/daily/index.xml @@ -1,7 +1,7 @@ GitHub LiveScript Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:32:16Z + 2024-12-20T01:32:23Z Daily Trending of LiveScript in GitHub \ No newline at end of file diff --git a/llvm/daily/index.xml b/llvm/daily/index.xml index bd4d8fcfe6b..59a57b6bb2f 100644 --- a/llvm/daily/index.xml +++ b/llvm/daily/index.xml @@ -1,7 +1,7 @@ GitHub LLVM Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:32:17Z + 2024-12-20T01:32:25Z Daily Trending of LLVM in GitHub \ No newline at end of file diff --git a/logos/daily/index.xml b/logos/daily/index.xml index d194cdda5cd..df0995bec96 100644 --- a/logos/daily/index.xml +++ b/logos/daily/index.xml @@ -1,7 +1,7 @@ GitHub Logos Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:32:16Z + 2024-12-20T01:32:24Z Daily Trending of Logos in GitHub \ No newline at end of file diff --git a/logtalk/daily/index.xml b/logtalk/daily/index.xml index 545d71b3115..4d438d8bc8e 100644 --- a/logtalk/daily/index.xml +++ b/logtalk/daily/index.xml @@ -1,7 +1,7 @@ GitHub Logtalk Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:32:17Z + 2024-12-20T01:32:27Z Daily Trending of Logtalk in GitHub \ No newline at end of file diff --git a/lolcode/daily/index.xml b/lolcode/daily/index.xml index 1cff6e60930..dbdfc7e8d98 100644 --- a/lolcode/daily/index.xml +++ b/lolcode/daily/index.xml @@ -1,7 +1,7 @@ GitHub LOLCODE Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:32:18Z + 2024-12-20T01:32:27Z Daily Trending of LOLCODE in GitHub \ No newline at end of file diff --git a/lookml/daily/index.xml b/lookml/daily/index.xml index b18817d891a..a56bc855791 100644 --- a/lookml/daily/index.xml +++ b/lookml/daily/index.xml @@ -1,7 +1,7 @@ GitHub LookML Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:32:18Z + 2024-12-20T01:32:26Z Daily Trending of LookML in GitHub \ No newline at end of file diff --git a/loomscript/daily/index.xml b/loomscript/daily/index.xml index 5533a406385..578219d0366 100644 --- a/loomscript/daily/index.xml +++ b/loomscript/daily/index.xml @@ -1,7 +1,7 @@ GitHub LoomScript Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:32:18Z + 2024-12-20T01:32:26Z Daily Trending of LoomScript in GitHub \ No newline at end of file diff --git a/lsl/daily/index.xml b/lsl/daily/index.xml index 60b2fab1aec..f87f95e7b24 100644 --- a/lsl/daily/index.xml +++ b/lsl/daily/index.xml @@ -1,7 +1,7 @@ GitHub LSL Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:32:21Z + 2024-12-20T01:32:28Z Daily Trending of LSL in GitHub \ No newline at end of file diff --git a/ltspice-symbol/daily/index.xml b/ltspice-symbol/daily/index.xml index df666436bac..5db03031928 100644 --- a/ltspice-symbol/daily/index.xml +++ b/ltspice-symbol/daily/index.xml @@ -1,7 +1,7 @@ GitHub LTspice Symbol Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:32:19Z + 2024-12-20T01:32:28Z Daily Trending of LTspice Symbol in GitHub \ No newline at end of file diff --git a/lua/daily/index.xml b/lua/daily/index.xml index b40dacb1cf4..92448b8d80d 100644 --- a/lua/daily/index.xml +++ b/lua/daily/index.xml @@ -1,7 +1,7 @@ GitHub Lua Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:32:21Z + 2024-12-20T01:32:29Z Daily Trending of Lua in GitHub \ No newline at end of file diff --git a/m/daily/index.xml b/m/daily/index.xml index daaa9c59512..ac4d65b24dc 100644 --- a/m/daily/index.xml +++ b/m/daily/index.xml @@ -1,7 +1,7 @@ GitHub M Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:32:25Z + 2024-12-20T01:32:34Z Daily Trending of M in GitHub \ No newline at end of file diff --git a/m4/daily/index.xml b/m4/daily/index.xml index 04a5d0083ee..f9584a973eb 100644 --- a/m4/daily/index.xml +++ b/m4/daily/index.xml @@ -1,7 +1,7 @@ GitHub M4 Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:32:24Z + 2024-12-20T01:32:34Z Daily Trending of M4 in GitHub \ No newline at end of file diff --git a/m4sugar/daily/index.xml b/m4sugar/daily/index.xml index 3f12657b0d0..8d9f9374e8b 100644 --- a/m4sugar/daily/index.xml +++ b/m4sugar/daily/index.xml @@ -1,7 +1,7 @@ GitHub M4Sugar Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:32:24Z + 2024-12-20T01:32:34Z Daily Trending of M4Sugar in GitHub \ No newline at end of file diff --git a/macaulay2/daily/index.xml b/macaulay2/daily/index.xml index f1c46496601..0fd1c7065bd 100644 --- a/macaulay2/daily/index.xml +++ b/macaulay2/daily/index.xml @@ -1,7 +1,7 @@ GitHub Macaulay2 Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:32:25Z + 2024-12-20T01:32:34Z Daily Trending of Macaulay2 in GitHub \ No newline at end of file diff --git a/makefile/daily/index.xml b/makefile/daily/index.xml index cf066e9cbb0..401628f14ac 100644 --- a/makefile/daily/index.xml +++ b/makefile/daily/index.xml @@ -1,21 +1,7 @@ GitHub Makefile Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:32:27Z + 2024-12-20T01:32:37Z Daily Trending of Makefile in GitHub - - reportportal/reportportal - 2024-12-19T01:32:27Z - tag:github.com,2024-12-19:/reportportal/reportportal - - <p>Main Repository. ReportPortal starts here - see readme below.</p><hr> - - - DS4SD/docling-serve - 2024-12-19T01:32:27Z - tag:github.com,2024-12-19:/DS4SD/docling-serve - - <p>Running Docling as an API service</p><hr> - \ No newline at end of file diff --git a/mako/daily/index.xml b/mako/daily/index.xml index be2f4383d71..c84cfad6235 100644 --- a/mako/daily/index.xml +++ b/mako/daily/index.xml @@ -1,7 +1,7 @@ GitHub Mako Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:32:26Z + 2024-12-20T01:32:35Z Daily Trending of Mako in GitHub \ No newline at end of file diff --git a/markdown/daily/index.xml b/markdown/daily/index.xml new file mode 100644 index 00000000000..c4e4950744f --- /dev/null +++ b/markdown/daily/index.xml @@ -0,0 +1,7 @@ + + GitHub Markdown Daily Trending + http://mshibanami.github.io/GitHubTrendingRSS + 2024-12-20T01:35:00Z + Daily Trending of Markdown in GitHub + + \ No newline at end of file diff --git a/marko/daily/index.xml b/marko/daily/index.xml index 08ddccd114c..15ba23c6aa4 100644 --- a/marko/daily/index.xml +++ b/marko/daily/index.xml @@ -1,7 +1,7 @@ GitHub Marko Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:32:26Z + 2024-12-20T01:32:35Z Daily Trending of Marko in GitHub \ No newline at end of file diff --git a/mask/daily/index.xml b/mask/daily/index.xml index 376ceee05db..19bab5ecee9 100644 --- a/mask/daily/index.xml +++ b/mask/daily/index.xml @@ -1,7 +1,7 @@ GitHub Mask Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:34:59Z + 2024-12-20T01:35:02Z Daily Trending of Mask in GitHub \ No newline at end of file diff --git a/mathematica/daily/index.xml b/mathematica/daily/index.xml index 6ffc00f6fbb..129ef77cce0 100644 --- a/mathematica/daily/index.xml +++ b/mathematica/daily/index.xml @@ -1,7 +1,7 @@ GitHub Mathematica Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:34:59Z + 2024-12-20T01:35:02Z Daily Trending of Mathematica in GitHub \ No newline at end of file diff --git a/matlab/daily/index.xml b/matlab/daily/index.xml index 76f4243ac08..02e5e8b530f 100644 --- a/matlab/daily/index.xml +++ b/matlab/daily/index.xml @@ -1,7 +1,7 @@ GitHub MATLAB Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:35:00Z + 2024-12-20T01:35:02Z Daily Trending of MATLAB in GitHub \ No newline at end of file diff --git a/maven-pom/daily/index.xml b/maven-pom/daily/index.xml index eaa9324157d..700bad60d35 100644 --- a/maven-pom/daily/index.xml +++ b/maven-pom/daily/index.xml @@ -1,7 +1,7 @@ GitHub Maven POM Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:34:59Z + 2024-12-20T01:35:01Z Daily Trending of Maven POM in GitHub \ No newline at end of file diff --git a/max/daily/index.xml b/max/daily/index.xml index c20e2ab3516..57761ecc63a 100644 --- a/max/daily/index.xml +++ b/max/daily/index.xml @@ -1,7 +1,7 @@ GitHub Max Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:35:00Z + 2024-12-20T01:35:03Z Daily Trending of Max in GitHub \ No newline at end of file diff --git a/maxscript/daily/index.xml b/maxscript/daily/index.xml index 6f3b349188b..ae331e2a8cb 100644 --- a/maxscript/daily/index.xml +++ b/maxscript/daily/index.xml @@ -1,7 +1,7 @@ GitHub MAXScript Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:35:01Z + 2024-12-20T01:35:03Z Daily Trending of MAXScript in GitHub \ No newline at end of file diff --git a/mcfunction/daily/index.xml b/mcfunction/daily/index.xml index 4c924f9b6ed..4e383471e82 100644 --- a/mcfunction/daily/index.xml +++ b/mcfunction/daily/index.xml @@ -1,7 +1,7 @@ GitHub mcfunction Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:35:01Z + 2024-12-20T01:35:04Z Daily Trending of mcfunction in GitHub \ No newline at end of file diff --git a/mercury/daily/index.xml b/mercury/daily/index.xml index cadaf1f2f92..86d27570c4c 100644 --- a/mercury/daily/index.xml +++ b/mercury/daily/index.xml @@ -1,7 +1,7 @@ GitHub Mercury Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:35:04Z + 2024-12-20T01:35:07Z Daily Trending of Mercury in GitHub \ No newline at end of file diff --git a/meson/daily/index.xml b/meson/daily/index.xml index d2c57046523..2834f7ce9a1 100644 --- a/meson/daily/index.xml +++ b/meson/daily/index.xml @@ -1,7 +1,7 @@ GitHub Meson Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:35:05Z + 2024-12-20T01:35:07Z Daily Trending of Meson in GitHub \ No newline at end of file diff --git a/metal/daily/index.xml b/metal/daily/index.xml index 2c79a6dfef3..45704093c37 100644 --- a/metal/daily/index.xml +++ b/metal/daily/index.xml @@ -1,7 +1,7 @@ GitHub Metal Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:35:06Z + 2024-12-20T01:35:09Z Daily Trending of Metal in GitHub \ No newline at end of file diff --git a/microsoft-developer-studio-project/daily/index.xml b/microsoft-developer-studio-project/daily/index.xml index a3986a0dec0..7279403cd17 100644 --- a/microsoft-developer-studio-project/daily/index.xml +++ b/microsoft-developer-studio-project/daily/index.xml @@ -1,7 +1,7 @@ GitHub Microsoft Developer Studio Project Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:35:06Z + 2024-12-20T01:35:09Z Daily Trending of Microsoft Developer Studio Project in GitHub \ No newline at end of file diff --git a/microsoft-visual-studio-solution/daily/index.xml b/microsoft-visual-studio-solution/daily/index.xml index d916d693fb1..59574c9fa23 100644 --- a/microsoft-visual-studio-solution/daily/index.xml +++ b/microsoft-visual-studio-solution/daily/index.xml @@ -1,7 +1,7 @@ GitHub Microsoft Visual Studio Solution Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:35:06Z + 2024-12-20T01:35:08Z Daily Trending of Microsoft Visual Studio Solution in GitHub \ No newline at end of file diff --git a/minid/daily/index.xml b/minid/daily/index.xml index 0d41fb47430..da9dbda5445 100644 --- a/minid/daily/index.xml +++ b/minid/daily/index.xml @@ -1,7 +1,7 @@ GitHub MiniD Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:35:07Z + 2024-12-20T01:35:09Z Daily Trending of MiniD in GitHub \ No newline at end of file diff --git a/mint/daily/index.xml b/mint/daily/index.xml index d7cc96b6cfd..06e4bf9ff74 100644 --- a/mint/daily/index.xml +++ b/mint/daily/index.xml @@ -1,7 +1,7 @@ GitHub Mint Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:35:08Z + 2024-12-20T01:35:11Z Daily Trending of Mint in GitHub \ No newline at end of file diff --git a/mirah/daily/index.xml b/mirah/daily/index.xml index 5c58e0e8bc7..eb162358a04 100644 --- a/mirah/daily/index.xml +++ b/mirah/daily/index.xml @@ -1,7 +1,7 @@ GitHub Mirah Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:35:08Z + 2024-12-20T01:35:11Z Daily Trending of Mirah in GitHub \ No newline at end of file diff --git a/mirc-script/daily/index.xml b/mirc-script/daily/index.xml index fbc58f47614..29bc797c810 100644 --- a/mirc-script/daily/index.xml +++ b/mirc-script/daily/index.xml @@ -1,7 +1,7 @@ GitHub mIRC Script Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:35:07Z + 2024-12-20T01:35:10Z Daily Trending of mIRC Script in GitHub \ No newline at end of file diff --git a/mlir/daily/index.xml b/mlir/daily/index.xml index 3227b847b2c..7cde19c1293 100644 --- a/mlir/daily/index.xml +++ b/mlir/daily/index.xml @@ -1,7 +1,7 @@ GitHub MLIR Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:35:10Z + 2024-12-20T01:35:13Z Daily Trending of MLIR in GitHub \ No newline at end of file diff --git a/modelica/daily/index.xml b/modelica/daily/index.xml index 49f126d0194..7fdeef1d872 100644 --- a/modelica/daily/index.xml +++ b/modelica/daily/index.xml @@ -1,7 +1,7 @@ GitHub Modelica Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:35:10Z + 2024-12-20T01:35:12Z Daily Trending of Modelica in GitHub \ No newline at end of file diff --git a/modula-2/daily/index.xml b/modula-2/daily/index.xml index fb0519acc2d..70537f6a9bd 100644 --- a/modula-2/daily/index.xml +++ b/modula-2/daily/index.xml @@ -1,7 +1,7 @@ GitHub Modula-2 Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:35:09Z + 2024-12-20T01:35:12Z Daily Trending of Modula-2 in GitHub \ No newline at end of file diff --git a/modula-3/daily/index.xml b/modula-3/daily/index.xml index 99cc8a758f9..275891a7575 100644 --- a/modula-3/daily/index.xml +++ b/modula-3/daily/index.xml @@ -1,7 +1,7 @@ GitHub Modula-3 Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:35:09Z + 2024-12-20T01:35:12Z Daily Trending of Modula-3 in GitHub \ No newline at end of file diff --git a/module-management-system/daily/index.xml b/module-management-system/daily/index.xml index d067688932d..5143b49179d 100644 --- a/module-management-system/daily/index.xml +++ b/module-management-system/daily/index.xml @@ -1,7 +1,7 @@ GitHub Module Management System Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:35:11Z + 2024-12-20T01:35:14Z Daily Trending of Module Management System in GitHub \ No newline at end of file diff --git a/monkey-c/daily/index.xml b/monkey-c/daily/index.xml index 70267f74852..3cc3179bbe3 100644 --- a/monkey-c/daily/index.xml +++ b/monkey-c/daily/index.xml @@ -1,7 +1,7 @@ GitHub Monkey C Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:35:11Z + 2024-12-20T01:35:14Z Daily Trending of Monkey C in GitHub \ No newline at end of file diff --git a/monkey/daily/index.xml b/monkey/daily/index.xml index d46e737b911..ba64e78ab28 100644 --- a/monkey/daily/index.xml +++ b/monkey/daily/index.xml @@ -1,7 +1,7 @@ GitHub Monkey Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:35:11Z + 2024-12-20T01:35:13Z Daily Trending of Monkey in GitHub \ No newline at end of file diff --git a/moocode/daily/index.xml b/moocode/daily/index.xml index d4db9672383..55426b72f87 100644 --- a/moocode/daily/index.xml +++ b/moocode/daily/index.xml @@ -1,7 +1,7 @@ GitHub Moocode Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:35:13Z + 2024-12-20T01:35:16Z Daily Trending of Moocode in GitHub \ No newline at end of file diff --git a/moonscript/daily/index.xml b/moonscript/daily/index.xml index c75484e92a4..9b07dac6a78 100644 --- a/moonscript/daily/index.xml +++ b/moonscript/daily/index.xml @@ -1,7 +1,7 @@ GitHub MoonScript Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:35:13Z + 2024-12-20T01:35:15Z Daily Trending of MoonScript in GitHub \ No newline at end of file diff --git a/motoko/daily/index.xml b/motoko/daily/index.xml index ee43acf9165..068d3840c38 100644 --- a/motoko/daily/index.xml +++ b/motoko/daily/index.xml @@ -1,7 +1,7 @@ GitHub Motoko Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:35:12Z + 2024-12-20T01:35:15Z Daily Trending of Motoko in GitHub \ No newline at end of file diff --git a/motorola-68k-assembly/daily/index.xml b/motorola-68k-assembly/daily/index.xml index ac45f4d1b62..e14cce9b7e1 100644 --- a/motorola-68k-assembly/daily/index.xml +++ b/motorola-68k-assembly/daily/index.xml @@ -1,7 +1,7 @@ GitHub Motorola 68K Assembly Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:35:14Z + 2024-12-20T01:35:17Z Daily Trending of Motorola 68K Assembly in GitHub \ No newline at end of file diff --git a/mql4/daily/index.xml b/mql4/daily/index.xml index 8f147ab686e..5913ffa65d5 100644 --- a/mql4/daily/index.xml +++ b/mql4/daily/index.xml @@ -1,7 +1,7 @@ GitHub MQL4 Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:35:14Z + 2024-12-20T01:35:17Z Daily Trending of MQL4 in GitHub \ No newline at end of file diff --git a/mql5/daily/index.xml b/mql5/daily/index.xml index ff96d0643e2..4a819c45c4c 100644 --- a/mql5/daily/index.xml +++ b/mql5/daily/index.xml @@ -1,7 +1,7 @@ GitHub MQL5 Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:35:14Z + 2024-12-20T01:35:17Z Daily Trending of MQL5 in GitHub \ No newline at end of file diff --git a/mtml/daily/index.xml b/mtml/daily/index.xml index 615731a4d54..e7fd23c69f3 100644 --- a/mtml/daily/index.xml +++ b/mtml/daily/index.xml @@ -1,7 +1,7 @@ GitHub MTML Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:35:16Z + 2024-12-20T01:35:19Z Daily Trending of MTML in GitHub \ No newline at end of file diff --git a/muf/daily/index.xml b/muf/daily/index.xml index a2f23428cfe..d7575af5e8f 100644 --- a/muf/daily/index.xml +++ b/muf/daily/index.xml @@ -1,7 +1,7 @@ GitHub MUF Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:35:16Z + 2024-12-20T01:35:19Z Daily Trending of MUF in GitHub \ No newline at end of file diff --git a/mupad/daily/index.xml b/mupad/daily/index.xml index a2c154abbe3..544d3654ffa 100644 --- a/mupad/daily/index.xml +++ b/mupad/daily/index.xml @@ -1,7 +1,7 @@ GitHub mupad Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:35:15Z + 2024-12-20T01:35:19Z Daily Trending of mupad in GitHub \ No newline at end of file diff --git a/muse/daily/index.xml b/muse/daily/index.xml index 9fd1e837e51..6126f9793e9 100644 --- a/muse/daily/index.xml +++ b/muse/daily/index.xml @@ -1,7 +1,7 @@ GitHub Muse Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:35:16Z + 2024-12-20T01:35:18Z Daily Trending of Muse in GitHub \ No newline at end of file diff --git a/mustache/daily/index.xml b/mustache/daily/index.xml index d2d83a8bd80..dd09ea5e8e5 100644 --- a/mustache/daily/index.xml +++ b/mustache/daily/index.xml @@ -1,7 +1,7 @@ GitHub Mustache Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:35:19Z + 2024-12-20T01:35:23Z Daily Trending of Mustache in GitHub \ No newline at end of file diff --git a/myghty/daily/index.xml b/myghty/daily/index.xml index 11188d744e3..cf7eb981945 100644 --- a/myghty/daily/index.xml +++ b/myghty/daily/index.xml @@ -1,7 +1,7 @@ GitHub Myghty Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:35:17Z + 2024-12-20T01:35:21Z Daily Trending of Myghty in GitHub \ No newline at end of file diff --git a/nanorc/daily/index.xml b/nanorc/daily/index.xml index 96fea9325ad..733d8716c34 100644 --- a/nanorc/daily/index.xml +++ b/nanorc/daily/index.xml @@ -1,7 +1,7 @@ GitHub nanorc Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:35:17Z + 2024-12-20T01:35:20Z Daily Trending of nanorc in GitHub \ No newline at end of file diff --git a/nasl/daily/index.xml b/nasl/daily/index.xml index dc8d315fec8..e6a40471791 100644 --- a/nasl/daily/index.xml +++ b/nasl/daily/index.xml @@ -1,7 +1,7 @@ GitHub NASL Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:35:20Z + 2024-12-20T01:35:25Z Daily Trending of NASL in GitHub \ No newline at end of file diff --git a/ncl/daily/index.xml b/ncl/daily/index.xml index ad8dcd572e3..8609f94dae0 100644 --- a/ncl/daily/index.xml +++ b/ncl/daily/index.xml @@ -1,7 +1,7 @@ GitHub NCL Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:35:20Z + 2024-12-20T01:35:24Z Daily Trending of NCL in GitHub \ No newline at end of file diff --git a/nearley/daily/index.xml b/nearley/daily/index.xml index 27434e45502..67e71333c86 100644 --- a/nearley/daily/index.xml +++ b/nearley/daily/index.xml @@ -1,7 +1,7 @@ GitHub Nearley Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:35:21Z + 2024-12-20T01:35:24Z Daily Trending of Nearley in GitHub \ No newline at end of file diff --git a/nemerle/daily/index.xml b/nemerle/daily/index.xml index 0b9c3d3e93e..3f680151669 100644 --- a/nemerle/daily/index.xml +++ b/nemerle/daily/index.xml @@ -1,7 +1,7 @@ GitHub Nemerle Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:35:20Z + 2024-12-20T01:35:24Z Daily Trending of Nemerle in GitHub \ No newline at end of file diff --git a/neon/daily/index.xml b/neon/daily/index.xml index 438a8d85af9..0d1537bfe8f 100644 --- a/neon/daily/index.xml +++ b/neon/daily/index.xml @@ -1,7 +1,7 @@ GitHub NEON Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:35:21Z + 2024-12-20T01:35:26Z Daily Trending of NEON in GitHub \ No newline at end of file diff --git a/nesc/daily/index.xml b/nesc/daily/index.xml index e40a03d3517..f6528790f5e 100644 --- a/nesc/daily/index.xml +++ b/nesc/daily/index.xml @@ -1,7 +1,7 @@ GitHub nesC Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:35:22Z + 2024-12-20T01:35:26Z Daily Trending of nesC in GitHub \ No newline at end of file diff --git a/netlinx+erb/daily/index.xml b/netlinx+erb/daily/index.xml index d44c09e995c..4b8093039f2 100644 --- a/netlinx+erb/daily/index.xml +++ b/netlinx+erb/daily/index.xml @@ -1,7 +1,7 @@ GitHub NetLinx+ERB Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:35:22Z + 2024-12-20T01:35:26Z Daily Trending of NetLinx+ERB in GitHub \ No newline at end of file diff --git a/netlinx/daily/index.xml b/netlinx/daily/index.xml index 2737614ad16..f1b04093f9d 100644 --- a/netlinx/daily/index.xml +++ b/netlinx/daily/index.xml @@ -1,7 +1,7 @@ GitHub NetLinx Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:35:22Z + 2024-12-20T01:35:25Z Daily Trending of NetLinx in GitHub \ No newline at end of file diff --git a/netlogo/daily/index.xml b/netlogo/daily/index.xml index 2fdeca9ed9f..faaa2807fb4 100644 --- a/netlogo/daily/index.xml +++ b/netlogo/daily/index.xml @@ -1,7 +1,7 @@ GitHub NetLogo Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:35:23Z + 2024-12-20T01:35:27Z Daily Trending of NetLogo in GitHub \ No newline at end of file diff --git a/newlisp/daily/index.xml b/newlisp/daily/index.xml index a8dd5e84c26..1e0d4a49e4b 100644 --- a/newlisp/daily/index.xml +++ b/newlisp/daily/index.xml @@ -1,7 +1,7 @@ GitHub NewLisp Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:35:23Z + 2024-12-20T01:35:28Z Daily Trending of NewLisp in GitHub \ No newline at end of file diff --git a/nextflow/daily/index.xml b/nextflow/daily/index.xml index 21f46d4eadf..aafd9314d4c 100644 --- a/nextflow/daily/index.xml +++ b/nextflow/daily/index.xml @@ -1,7 +1,7 @@ GitHub Nextflow Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:35:24Z + 2024-12-20T01:35:28Z Daily Trending of Nextflow in GitHub \ No newline at end of file diff --git a/nginx/daily/index.xml b/nginx/daily/index.xml index a2ffcb7e71e..67e351d266b 100644 --- a/nginx/daily/index.xml +++ b/nginx/daily/index.xml @@ -1,7 +1,7 @@ GitHub Nginx Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:35:23Z + 2024-12-20T01:35:27Z Daily Trending of Nginx in GitHub \ No newline at end of file diff --git a/nim/daily/index.xml b/nim/daily/index.xml index 795d61192aa..47da81a3194 100644 --- a/nim/daily/index.xml +++ b/nim/daily/index.xml @@ -1,7 +1,7 @@ GitHub Nim Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:35:25Z + 2024-12-20T01:35:29Z Daily Trending of Nim in GitHub \ No newline at end of file diff --git a/ninja/daily/index.xml b/ninja/daily/index.xml index 07ee7c2b1bc..5024eebecd8 100644 --- a/ninja/daily/index.xml +++ b/ninja/daily/index.xml @@ -1,7 +1,7 @@ GitHub Ninja Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:35:25Z + 2024-12-20T01:35:29Z Daily Trending of Ninja in GitHub \ No newline at end of file diff --git a/nit/daily/index.xml b/nit/daily/index.xml index c45f183fe2d..48fe23fde39 100644 --- a/nit/daily/index.xml +++ b/nit/daily/index.xml @@ -1,7 +1,7 @@ GitHub Nit Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:35:25Z + 2024-12-20T01:35:29Z Daily Trending of Nit in GitHub \ No newline at end of file diff --git a/nix/daily/index.xml b/nix/daily/index.xml index a5dc52f21a7..5543cebb504 100644 --- a/nix/daily/index.xml +++ b/nix/daily/index.xml @@ -1,7 +1,7 @@ GitHub Nix Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:35:26Z + 2024-12-20T01:35:33Z Daily Trending of Nix in GitHub \ No newline at end of file diff --git a/nl/daily/index.xml b/nl/daily/index.xml index b16f4581207..ea6c7f053f4 100644 --- a/nl/daily/index.xml +++ b/nl/daily/index.xml @@ -1,7 +1,7 @@ GitHub NL Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:35:28Z + 2024-12-20T01:35:34Z Daily Trending of NL in GitHub \ No newline at end of file diff --git a/npm-config/daily/index.xml b/npm-config/daily/index.xml index e3aa6796d73..506d8d32529 100644 --- a/npm-config/daily/index.xml +++ b/npm-config/daily/index.xml @@ -1,7 +1,7 @@ GitHub NPM Config Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:35:27Z + 2024-12-20T01:35:35Z Daily Trending of NPM Config in GitHub \ No newline at end of file diff --git a/nsis/daily/index.xml b/nsis/daily/index.xml index ffa1b8f9d10..1fb90923e7c 100644 --- a/nsis/daily/index.xml +++ b/nsis/daily/index.xml @@ -1,7 +1,7 @@ GitHub NSIS Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:35:29Z + 2024-12-20T01:35:37Z Daily Trending of NSIS in GitHub \ No newline at end of file diff --git a/nu/daily/index.xml b/nu/daily/index.xml index 14bc4698239..cf7f62975c9 100644 --- a/nu/daily/index.xml +++ b/nu/daily/index.xml @@ -1,7 +1,7 @@ GitHub Nu Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:35:28Z + 2024-12-20T01:35:36Z Daily Trending of Nu in GitHub \ No newline at end of file diff --git a/numpy/daily/index.xml b/numpy/daily/index.xml index a00cea042f2..3cc7a5ea9a0 100644 --- a/numpy/daily/index.xml +++ b/numpy/daily/index.xml @@ -1,7 +1,7 @@ GitHub NumPy Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:35:29Z + 2024-12-20T01:35:35Z Daily Trending of NumPy in GitHub \ No newline at end of file diff --git a/nunjucks/daily/index.xml b/nunjucks/daily/index.xml index 6c00c0e111f..b433dd2a72f 100644 --- a/nunjucks/daily/index.xml +++ b/nunjucks/daily/index.xml @@ -1,7 +1,7 @@ GitHub Nunjucks Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:35:29Z + 2024-12-20T01:35:36Z Daily Trending of Nunjucks in GitHub \ No newline at end of file diff --git a/nwscript/daily/index.xml b/nwscript/daily/index.xml index 8fc6b5a9e9b..500a765450e 100644 --- a/nwscript/daily/index.xml +++ b/nwscript/daily/index.xml @@ -1,7 +1,7 @@ GitHub NWScript Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:35:31Z + 2024-12-20T01:35:38Z Daily Trending of NWScript in GitHub \ No newline at end of file diff --git a/objdump/daily/index.xml b/objdump/daily/index.xml index 11d4a139d62..d953a5c5bf7 100644 --- a/objdump/daily/index.xml +++ b/objdump/daily/index.xml @@ -1,7 +1,7 @@ GitHub ObjDump Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:35:32Z + 2024-12-20T01:35:39Z Daily Trending of ObjDump in GitHub \ No newline at end of file diff --git a/object-data-instance-notation/daily/index.xml b/object-data-instance-notation/daily/index.xml index 97785056945..b9edaa3eb94 100644 --- a/object-data-instance-notation/daily/index.xml +++ b/object-data-instance-notation/daily/index.xml @@ -1,7 +1,7 @@ GitHub Object Data Instance Notation Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:35:33Z + 2024-12-20T01:35:41Z Daily Trending of Object Data Instance Notation in GitHub \ No newline at end of file diff --git a/objective-c++/daily/index.xml b/objective-c++/daily/index.xml index 050a2121485..6301c4ea859 100644 --- a/objective-c++/daily/index.xml +++ b/objective-c++/daily/index.xml @@ -1,7 +1,7 @@ GitHub Objective-C++ Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:35:34Z + 2024-12-20T01:35:42Z Daily Trending of Objective-C++ in GitHub \ No newline at end of file diff --git a/objective-c/daily/index.xml b/objective-c/daily/index.xml index 54df846ed64..13c52d74719 100644 --- a/objective-c/daily/index.xml +++ b/objective-c/daily/index.xml @@ -1,7 +1,7 @@ GitHub Objective-C Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:35:36Z + 2024-12-20T01:35:44Z Daily Trending of Objective-C in GitHub \ No newline at end of file diff --git a/objective-j/daily/index.xml b/objective-j/daily/index.xml index 8f3577b8f10..adb75913bf3 100644 --- a/objective-j/daily/index.xml +++ b/objective-j/daily/index.xml @@ -1,7 +1,7 @@ GitHub Objective-J Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:35:33Z + 2024-12-20T01:35:41Z Daily Trending of Objective-J in GitHub \ No newline at end of file diff --git a/objectscript/daily/index.xml b/objectscript/daily/index.xml index 7c0bdb48b30..afd020d7bac 100644 --- a/objectscript/daily/index.xml +++ b/objectscript/daily/index.xml @@ -1,7 +1,7 @@ GitHub ObjectScript Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:35:39Z + 2024-12-20T01:35:47Z Daily Trending of ObjectScript in GitHub \ No newline at end of file diff --git a/ocaml/daily/index.xml b/ocaml/daily/index.xml index 8994d5d46d7..25b99f2d3a3 100644 --- a/ocaml/daily/index.xml +++ b/ocaml/daily/index.xml @@ -1,7 +1,7 @@ GitHub OCaml Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:35:40Z + 2024-12-20T01:35:50Z Daily Trending of OCaml in GitHub \ No newline at end of file diff --git a/odin/daily/index.xml b/odin/daily/index.xml index e8ed9d1628b..a621aeb931d 100644 --- a/odin/daily/index.xml +++ b/odin/daily/index.xml @@ -1,7 +1,7 @@ GitHub Odin Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:35:40Z + 2024-12-20T01:35:48Z Daily Trending of Odin in GitHub \ No newline at end of file diff --git a/omgrofl/daily/index.xml b/omgrofl/daily/index.xml index 0c1d45736f1..bd83a2398ef 100644 --- a/omgrofl/daily/index.xml +++ b/omgrofl/daily/index.xml @@ -1,7 +1,7 @@ GitHub Omgrofl Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:35:39Z + 2024-12-20T01:35:47Z Daily Trending of Omgrofl in GitHub \ No newline at end of file diff --git a/ooc/daily/index.xml b/ooc/daily/index.xml index 74d7f658511..e61b13402bf 100644 --- a/ooc/daily/index.xml +++ b/ooc/daily/index.xml @@ -1,7 +1,7 @@ GitHub ooc Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:35:42Z + 2024-12-20T01:35:52Z Daily Trending of ooc in GitHub \ No newline at end of file diff --git a/opa/daily/index.xml b/opa/daily/index.xml index 600345d44be..3abaa8696a1 100644 --- a/opa/daily/index.xml +++ b/opa/daily/index.xml @@ -1,7 +1,7 @@ GitHub Opa Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:35:41Z + 2024-12-20T01:35:51Z Daily Trending of Opa in GitHub \ No newline at end of file diff --git a/opal/daily/index.xml b/opal/daily/index.xml index 34d96e7cb5a..f5967276fa0 100644 --- a/opal/daily/index.xml +++ b/opal/daily/index.xml @@ -1,7 +1,7 @@ GitHub Opal Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:35:43Z + 2024-12-20T01:35:53Z Daily Trending of Opal in GitHub \ No newline at end of file diff --git a/open-policy-agent/daily/index.xml b/open-policy-agent/daily/index.xml index 7379b08c089..a8f7a52789c 100644 --- a/open-policy-agent/daily/index.xml +++ b/open-policy-agent/daily/index.xml @@ -1,7 +1,7 @@ GitHub Open Policy Agent Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:35:43Z + 2024-12-20T01:35:53Z Daily Trending of Open Policy Agent in GitHub \ No newline at end of file diff --git a/opencl/daily/index.xml b/opencl/daily/index.xml index e7e6be7de96..55cadcb4026 100644 --- a/opencl/daily/index.xml +++ b/opencl/daily/index.xml @@ -1,7 +1,7 @@ GitHub OpenCL Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:35:44Z + 2024-12-20T01:35:54Z Daily Trending of OpenCL in GitHub \ No newline at end of file diff --git a/openedge-abl/daily/index.xml b/openedge-abl/daily/index.xml index 8e2d59247f7..b1569ee3086 100644 --- a/openedge-abl/daily/index.xml +++ b/openedge-abl/daily/index.xml @@ -1,7 +1,7 @@ GitHub OpenEdge ABL Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:35:44Z + 2024-12-20T01:35:55Z Daily Trending of OpenEdge ABL in GitHub \ No newline at end of file diff --git a/openqasm/daily/index.xml b/openqasm/daily/index.xml index d563c34a875..9eb717fd7d0 100644 --- a/openqasm/daily/index.xml +++ b/openqasm/daily/index.xml @@ -1,7 +1,7 @@ GitHub OpenQASM Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:35:45Z + 2024-12-20T01:35:54Z Daily Trending of OpenQASM in GitHub \ No newline at end of file diff --git a/openrc-runscript/daily/index.xml b/openrc-runscript/daily/index.xml index 3899c6a1a88..3fc4a68db86 100644 --- a/openrc-runscript/daily/index.xml +++ b/openrc-runscript/daily/index.xml @@ -1,7 +1,7 @@ GitHub OpenRC runscript Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:35:45Z + 2024-12-20T01:35:55Z Daily Trending of OpenRC runscript in GitHub \ No newline at end of file diff --git a/openscad/daily/index.xml b/openscad/daily/index.xml index 8bab71d9639..499bf012ebd 100644 --- a/openscad/daily/index.xml +++ b/openscad/daily/index.xml @@ -1,7 +1,7 @@ GitHub OpenSCAD Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:35:47Z + 2024-12-20T01:35:57Z Daily Trending of OpenSCAD in GitHub \ No newline at end of file diff --git a/openstep-property-list/daily/index.xml b/openstep-property-list/daily/index.xml index 10390c3f9f1..85ccaef17e6 100644 --- a/openstep-property-list/daily/index.xml +++ b/openstep-property-list/daily/index.xml @@ -1,7 +1,7 @@ GitHub OpenStep Property List Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:35:46Z + 2024-12-20T01:35:56Z Daily Trending of OpenStep Property List in GitHub \ No newline at end of file diff --git a/opentype-feature-file/daily/index.xml b/opentype-feature-file/daily/index.xml index aaea8102061..483718aa0e7 100644 --- a/opentype-feature-file/daily/index.xml +++ b/opentype-feature-file/daily/index.xml @@ -1,7 +1,7 @@ GitHub OpenType Feature File Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:35:46Z + 2024-12-20T01:35:56Z Daily Trending of OpenType Feature File in GitHub \ No newline at end of file diff --git a/org/daily/index.xml b/org/daily/index.xml index 3e73c7194bc..8e01fb1cd78 100644 --- a/org/daily/index.xml +++ b/org/daily/index.xml @@ -1,7 +1,7 @@ GitHub Org Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:35:47Z + 2024-12-20T01:35:59Z Daily Trending of Org in GitHub \ No newline at end of file diff --git a/ox/daily/index.xml b/ox/daily/index.xml index 085dd94f530..814366af3d6 100644 --- a/ox/daily/index.xml +++ b/ox/daily/index.xml @@ -1,7 +1,7 @@ GitHub Ox Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:35:48Z + 2024-12-20T01:35:58Z Daily Trending of Ox in GitHub \ No newline at end of file diff --git a/oxygene/daily/index.xml b/oxygene/daily/index.xml index af4a837840c..b9b53eab226 100644 --- a/oxygene/daily/index.xml +++ b/oxygene/daily/index.xml @@ -1,7 +1,7 @@ GitHub Oxygene Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:35:48Z + 2024-12-20T01:35:58Z Daily Trending of Oxygene in GitHub \ No newline at end of file diff --git a/oz/daily/index.xml b/oz/daily/index.xml index 2a84c2913e0..e5ec98fa3fb 100644 --- a/oz/daily/index.xml +++ b/oz/daily/index.xml @@ -1,7 +1,7 @@ GitHub Oz Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:35:48Z + 2024-12-20T01:35:58Z Daily Trending of Oz in GitHub \ No newline at end of file diff --git a/p4/daily/index.xml b/p4/daily/index.xml index 4b921cabc59..ad450f91e3f 100644 --- a/p4/daily/index.xml +++ b/p4/daily/index.xml @@ -1,7 +1,7 @@ GitHub P4 Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:35:49Z + 2024-12-20T01:36:00Z Daily Trending of P4 in GitHub \ No newline at end of file diff --git a/pan/daily/index.xml b/pan/daily/index.xml index 57d547ccc2e..2096d5660c5 100644 --- a/pan/daily/index.xml +++ b/pan/daily/index.xml @@ -1,7 +1,7 @@ GitHub Pan Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:35:50Z + 2024-12-20T01:35:59Z Daily Trending of Pan in GitHub \ No newline at end of file diff --git a/papyrus/daily/index.xml b/papyrus/daily/index.xml index 52162e027b4..d270a4c46b7 100644 --- a/papyrus/daily/index.xml +++ b/papyrus/daily/index.xml @@ -1,7 +1,7 @@ GitHub Papyrus Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:35:50Z + 2024-12-20T01:36:00Z Daily Trending of Papyrus in GitHub \ No newline at end of file diff --git a/parrot-assembly/daily/index.xml b/parrot-assembly/daily/index.xml index aababf0d525..6ff470c2a8b 100644 --- a/parrot-assembly/daily/index.xml +++ b/parrot-assembly/daily/index.xml @@ -1,7 +1,7 @@ GitHub Parrot Assembly Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:35:51Z + 2024-12-20T01:36:01Z Daily Trending of Parrot Assembly in GitHub \ No newline at end of file diff --git a/parrot-internal-representation/daily/index.xml b/parrot-internal-representation/daily/index.xml index 218af2f4b6f..1d932ea6e83 100644 --- a/parrot-internal-representation/daily/index.xml +++ b/parrot-internal-representation/daily/index.xml @@ -1,7 +1,7 @@ GitHub Parrot Internal Representation Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:35:52Z + 2024-12-20T01:36:03Z Daily Trending of Parrot Internal Representation in GitHub \ No newline at end of file diff --git a/parrot/daily/index.xml b/parrot/daily/index.xml index 1a2cad0f629..256281d1241 100644 --- a/parrot/daily/index.xml +++ b/parrot/daily/index.xml @@ -1,7 +1,7 @@ GitHub Parrot Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:35:51Z + 2024-12-20T01:36:01Z Daily Trending of Parrot in GitHub \ No newline at end of file diff --git a/pascal/daily/index.xml b/pascal/daily/index.xml index f82124dcc08..1a0e60094f8 100644 --- a/pascal/daily/index.xml +++ b/pascal/daily/index.xml @@ -1,7 +1,7 @@ GitHub Pascal Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:35:51Z + 2024-12-20T01:36:02Z Daily Trending of Pascal in GitHub \ No newline at end of file diff --git a/pawn/daily/index.xml b/pawn/daily/index.xml index 882c32a792d..927134d91f3 100644 --- a/pawn/daily/index.xml +++ b/pawn/daily/index.xml @@ -1,7 +1,7 @@ GitHub Pawn Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:35:52Z + 2024-12-20T01:36:03Z Daily Trending of Pawn in GitHub \ No newline at end of file diff --git a/peg.js/daily/index.xml b/peg.js/daily/index.xml index d9cc049aaf2..28f8485fbe2 100644 --- a/peg.js/daily/index.xml +++ b/peg.js/daily/index.xml @@ -1,7 +1,7 @@ GitHub PEG.js Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:35:53Z + 2024-12-20T01:36:04Z Daily Trending of PEG.js in GitHub \ No newline at end of file diff --git a/pep8/daily/index.xml b/pep8/daily/index.xml index 461bf7c1615..460560986ab 100644 --- a/pep8/daily/index.xml +++ b/pep8/daily/index.xml @@ -1,7 +1,7 @@ GitHub Pep8 Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:35:53Z + 2024-12-20T01:36:04Z Daily Trending of Pep8 in GitHub \ No newline at end of file diff --git a/perl/daily/index.xml b/perl/daily/index.xml index eda66c3d281..c382ba66108 100644 --- a/perl/daily/index.xml +++ b/perl/daily/index.xml @@ -1,7 +1,7 @@ GitHub Perl Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:35:56Z + 2024-12-20T01:36:13Z Daily Trending of Perl in GitHub \ No newline at end of file diff --git a/php/daily/index.xml b/php/daily/index.xml index 5935d94ec70..1a146f7a444 100644 --- a/php/daily/index.xml +++ b/php/daily/index.xml @@ -1,7 +1,7 @@ GitHub PHP Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:36:05Z + 2024-12-20T01:36:09Z Daily Trending of PHP in GitHub \ No newline at end of file diff --git a/pic/daily/index.xml b/pic/daily/index.xml index e01a1cebeb6..cbc1133f26f 100644 --- a/pic/daily/index.xml +++ b/pic/daily/index.xml @@ -1,7 +1,7 @@ GitHub Pic Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:35:54Z + 2024-12-20T01:36:05Z Daily Trending of Pic in GitHub \ No newline at end of file diff --git a/pickle/daily/index.xml b/pickle/daily/index.xml index d032650b749..bfe7495c2ce 100644 --- a/pickle/daily/index.xml +++ b/pickle/daily/index.xml @@ -1,7 +1,7 @@ GitHub Pickle Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:35:54Z + 2024-12-20T01:36:05Z Daily Trending of Pickle in GitHub \ No newline at end of file diff --git a/picolisp/daily/index.xml b/picolisp/daily/index.xml index 5d94b4ccce6..cdf35e1a79a 100644 --- a/picolisp/daily/index.xml +++ b/picolisp/daily/index.xml @@ -1,7 +1,7 @@ GitHub PicoLisp Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:36:10Z + 2024-12-20T01:36:19Z Daily Trending of PicoLisp in GitHub \ No newline at end of file diff --git a/piglatin/daily/index.xml b/piglatin/daily/index.xml index 8e0b1613808..8840f6c3473 100644 --- a/piglatin/daily/index.xml +++ b/piglatin/daily/index.xml @@ -1,7 +1,7 @@ GitHub PigLatin Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:36:09Z + 2024-12-20T01:36:19Z Daily Trending of PigLatin in GitHub \ No newline at end of file diff --git a/pike/daily/index.xml b/pike/daily/index.xml index 9fcb45dbd42..eb372d02416 100644 --- a/pike/daily/index.xml +++ b/pike/daily/index.xml @@ -1,7 +1,7 @@ GitHub Pike Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:36:09Z + 2024-12-20T01:36:19Z Daily Trending of Pike in GitHub \ No newline at end of file diff --git a/plantuml/daily/index.xml b/plantuml/daily/index.xml index 7dbc2f2b5ab..8806303fbb2 100644 --- a/plantuml/daily/index.xml +++ b/plantuml/daily/index.xml @@ -1,7 +1,7 @@ GitHub PlantUML Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:36:11Z + 2024-12-20T01:36:21Z Daily Trending of PlantUML in GitHub \ No newline at end of file diff --git a/plpgsql/daily/index.xml b/plpgsql/daily/index.xml index 62c027fbc88..a96e99e5b39 100644 --- a/plpgsql/daily/index.xml +++ b/plpgsql/daily/index.xml @@ -1,7 +1,7 @@ GitHub PLpgSQL Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:36:12Z + 2024-12-20T01:36:22Z Daily Trending of PLpgSQL in GitHub \ No newline at end of file diff --git a/plsql/daily/index.xml b/plsql/daily/index.xml index 84185ac78e5..0de1e56c975 100644 --- a/plsql/daily/index.xml +++ b/plsql/daily/index.xml @@ -1,7 +1,7 @@ GitHub PLSQL Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:36:11Z + 2024-12-20T01:36:21Z Daily Trending of PLSQL in GitHub \ No newline at end of file diff --git a/pod-6/daily/index.xml b/pod-6/daily/index.xml index 27747a83415..d82535c7bb6 100644 --- a/pod-6/daily/index.xml +++ b/pod-6/daily/index.xml @@ -1,7 +1,7 @@ GitHub Pod 6 Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:36:13Z + 2024-12-20T01:36:23Z Daily Trending of Pod 6 in GitHub \ No newline at end of file diff --git a/pod/daily/index.xml b/pod/daily/index.xml index 83e29d3b0d5..28c3ac95ab1 100644 --- a/pod/daily/index.xml +++ b/pod/daily/index.xml @@ -1,7 +1,7 @@ GitHub Pod Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:36:13Z + 2024-12-20T01:36:22Z Daily Trending of Pod in GitHub \ No newline at end of file diff --git a/pogoscript/daily/index.xml b/pogoscript/daily/index.xml index 44d69da75fb..15c2f0c9dd0 100644 --- a/pogoscript/daily/index.xml +++ b/pogoscript/daily/index.xml @@ -1,7 +1,7 @@ GitHub PogoScript Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:36:12Z + 2024-12-20T01:36:23Z Daily Trending of PogoScript in GitHub \ No newline at end of file diff --git a/pony/daily/index.xml b/pony/daily/index.xml index b66f4448dd5..fde307743af 100644 --- a/pony/daily/index.xml +++ b/pony/daily/index.xml @@ -1,7 +1,7 @@ GitHub Pony Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:36:15Z + 2024-12-20T01:36:25Z Daily Trending of Pony in GitHub \ No newline at end of file diff --git a/postcss/daily/index.xml b/postcss/daily/index.xml index 2637cd82c7f..85dd3aee7b3 100644 --- a/postcss/daily/index.xml +++ b/postcss/daily/index.xml @@ -1,7 +1,7 @@ GitHub PostCSS Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:36:14Z + 2024-12-20T01:36:24Z Daily Trending of PostCSS in GitHub \ No newline at end of file diff --git a/postscript/daily/index.xml b/postscript/daily/index.xml index 852873b23f4..102f2564cb3 100644 --- a/postscript/daily/index.xml +++ b/postscript/daily/index.xml @@ -1,7 +1,7 @@ GitHub PostScript Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:36:15Z + 2024-12-20T01:36:25Z Daily Trending of PostScript in GitHub \ No newline at end of file diff --git a/pov-ray-sdl/daily/index.xml b/pov-ray-sdl/daily/index.xml index 07011cb88ee..7acf2689bf7 100644 --- a/pov-ray-sdl/daily/index.xml +++ b/pov-ray-sdl/daily/index.xml @@ -1,7 +1,7 @@ GitHub POV-Ray SDL Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:36:16Z + 2024-12-20T01:36:27Z Daily Trending of POV-Ray SDL in GitHub \ No newline at end of file diff --git a/powerbuilder/daily/index.xml b/powerbuilder/daily/index.xml index 08f1fba7274..1c8542a72a8 100644 --- a/powerbuilder/daily/index.xml +++ b/powerbuilder/daily/index.xml @@ -1,7 +1,7 @@ GitHub PowerBuilder Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:36:16Z + 2024-12-20T01:36:26Z Daily Trending of PowerBuilder in GitHub \ No newline at end of file diff --git a/powershell/daily/index.xml b/powershell/daily/index.xml index 8c5316d3ceb..6cb867815db 100644 --- a/powershell/daily/index.xml +++ b/powershell/daily/index.xml @@ -1,7 +1,14 @@ GitHub PowerShell Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:36:20Z + 2024-12-20T01:36:29Z Daily Trending of PowerShell in GitHub + + SpecterOps/BloodHound-Legacy + 2024-12-20T01:36:29Z + tag:github.com,2024-12-20:/SpecterOps/BloodHound-Legacy + + <p>Six Degrees of Domain Admin</p><hr><h1>Latest Version of BloodHound Community Edition is Released</h1> <p>For the latest version of BloodHound you may follow <a href="https://github.com/SpecterOps/BloodHound">this link to the BloodHound Community Edition repository</a>.</p> <h2>Deprecation Notice</h2> <p>This repository will be archived in the near future.</p> <hr> <p><a href="https://github.com/BloodHoundAD/BloodHound/actions/workflows/build.yml"><img src="https://github.com/BloodHoundAD/BloodHound/actions/workflows/build.yml/badge.svg?sanitize=true" alt="Build"></a> <a href="https://github.com/BloodHoundAD/BloodHound/releases/latest"><img src="https://img.shields.io/github/v/release/BloodHoundAD/BloodHound" alt="GitHub release (latest SemVer)"></a> <img src="https://img.shields.io/github/downloads/BloodHoundAD/BloodHound/total" alt="GitHub all releases"></p> <h1>Getting Started with BloodHound</h1> <p>To get started with BloodHound, check out the <a href="https://bloodhound.readthedocs.io/en/latest/index.html">BloodHound docs.</a></p> <h1>About BloodHound</h1> <p>BloodHound is a single page Javascript web application, built on top of <a href="http://linkurio.us/">Linkurious</a>, compiled with <a href="http://electron.atom.io/">Electron</a>, with a <a href="https://neo4j.com/">Neo4j</a> database fed by a C# data collector.</p> <p>BloodHound uses graph theory to reveal the hidden and often unintended relationships within an Active Directory or Azure environment. Attackers can use BloodHound to easily identify highly complex attack paths that would otherwise be impossible to quickly identify. Defenders can use BloodHound to identify and eliminate those same attack paths. Both blue and red teams can use BloodHound to easily gain a deeper understanding of privilege relationships in an Active Directory or Azure environment.</p> <p>BloodHound was created by <a href="https://www.twitter.com/_wald0">@_wald0</a>, <a href="https://twitter.com/CptJesus">@CptJesus</a>, and <a href="https://twitter.com/harmj0y">@harmj0y</a>.</p> <p>BloodHound is maintained by the <a href="https://bloodhoundenterprise.io/">BloodHound Enterprise</a> team.</p> <h1>About BloodHound Enterprise</h1> <p><a href="https://bloodhoundenterprise.io/">BloodHound Enterprise</a> is an Attack Path Management solution that continuously maps and quantifies Active Directory Attack Paths. You can remove millions, even billions of Attack Paths within your existing architecture and eliminate the attacker’s easiest, most reliable, and most attractive techniques.</p> <h1>Downloading BloodHound Binaries</h1> <p>Pre-Compiled BloodHound binaries can be found <a href="https://github.com/BloodHoundAD/BloodHound/releases">here</a>.</p> <p>The rolling release will always be updated to the most recent source. Tagged releases are considered "stable" but will likely not have new features or fixes.</p> <h1>Creating example data</h1> <p>A sample database generator can be found <a href="https://github.com/BloodHoundAD/BloodHound-Tools/tree/master/DBCreator">here</a></p> <p>You can create your own example Active Directory environment using <a href="https://github.com/davidprowe/BadBlood">BadBlood</a>.</p> <h1>License</h1> <p>BloodHound uses graph theory to reveal hidden relationships and attack paths in an Active Directory environment. Copyright (C) 2016-2023 Specter Ops Inc.</p> <p>This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.</p> <p>This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.</p> <p>You should have received a copy of the GNU General Public License along with this program. If not, see <a href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a>.</p> + \ No newline at end of file diff --git a/prisma/daily/index.xml b/prisma/daily/index.xml index f74cfc20050..0f47c97ca22 100644 --- a/prisma/daily/index.xml +++ b/prisma/daily/index.xml @@ -1,7 +1,7 @@ GitHub Prisma Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:36:22Z + 2024-12-20T01:36:31Z Daily Trending of Prisma in GitHub \ No newline at end of file diff --git a/processing/daily/index.xml b/processing/daily/index.xml index d3a3695518a..4db3cb4950e 100644 --- a/processing/daily/index.xml +++ b/processing/daily/index.xml @@ -1,7 +1,7 @@ GitHub Processing Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:36:23Z + 2024-12-20T01:36:32Z Daily Trending of Processing in GitHub \ No newline at end of file diff --git a/procfile/daily/index.xml b/procfile/daily/index.xml index e628bb44d9c..e8232a2588d 100644 --- a/procfile/daily/index.xml +++ b/procfile/daily/index.xml @@ -1,7 +1,7 @@ GitHub Procfile Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:36:23Z + 2024-12-20T01:36:31Z Daily Trending of Procfile in GitHub \ No newline at end of file diff --git a/proguard/daily/index.xml b/proguard/daily/index.xml index 156c79c82c0..5185b3402b9 100644 --- a/proguard/daily/index.xml +++ b/proguard/daily/index.xml @@ -1,7 +1,7 @@ GitHub Proguard Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:36:23Z + 2024-12-20T01:36:32Z Daily Trending of Proguard in GitHub \ No newline at end of file diff --git a/prolog/daily/index.xml b/prolog/daily/index.xml index d5db8389a1f..3955fffe4e4 100644 --- a/prolog/daily/index.xml +++ b/prolog/daily/index.xml @@ -1,7 +1,7 @@ GitHub Prolog Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:36:25Z + 2024-12-20T01:36:34Z Daily Trending of Prolog in GitHub \ No newline at end of file diff --git a/promela/daily/index.xml b/promela/daily/index.xml index 7de426b1437..2fd8766b7d1 100644 --- a/promela/daily/index.xml +++ b/promela/daily/index.xml @@ -1,7 +1,7 @@ GitHub Promela Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:36:24Z + 2024-12-20T01:36:33Z Daily Trending of Promela in GitHub \ No newline at end of file diff --git a/propeller-spin/daily/index.xml b/propeller-spin/daily/index.xml index f16f5b829ee..67b5f711bcc 100644 --- a/propeller-spin/daily/index.xml +++ b/propeller-spin/daily/index.xml @@ -1,7 +1,7 @@ GitHub Propeller Spin Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:36:24Z + 2024-12-20T01:36:33Z Daily Trending of Propeller Spin in GitHub \ No newline at end of file diff --git a/protocol-buffer-text-format/daily/index.xml b/protocol-buffer-text-format/daily/index.xml index 5537bd9fc3c..8ef48060d44 100644 --- a/protocol-buffer-text-format/daily/index.xml +++ b/protocol-buffer-text-format/daily/index.xml @@ -1,7 +1,7 @@ GitHub Protocol Buffer Text Format Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:36:26Z + 2024-12-20T01:36:34Z Daily Trending of Protocol Buffer Text Format in GitHub \ No newline at end of file diff --git a/protocol-buffer/daily/index.xml b/protocol-buffer/daily/index.xml index 0bdf175d4c3..0e8ff875755 100644 --- a/protocol-buffer/daily/index.xml +++ b/protocol-buffer/daily/index.xml @@ -1,7 +1,7 @@ GitHub Protocol Buffer Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:36:25Z + 2024-12-20T01:36:33Z Daily Trending of Protocol Buffer in GitHub \ No newline at end of file diff --git a/public-key/daily/index.xml b/public-key/daily/index.xml index c2880e15088..a2a6f112313 100644 --- a/public-key/daily/index.xml +++ b/public-key/daily/index.xml @@ -1,7 +1,7 @@ GitHub Public Key Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:36:26Z + 2024-12-20T01:36:35Z Daily Trending of Public Key in GitHub \ No newline at end of file diff --git a/pug/daily/index.xml b/pug/daily/index.xml index 2231567da85..29608b9f336 100644 --- a/pug/daily/index.xml +++ b/pug/daily/index.xml @@ -1,7 +1,7 @@ GitHub Pug Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:36:27Z + 2024-12-20T01:36:35Z Daily Trending of Pug in GitHub \ No newline at end of file diff --git a/puppet/daily/index.xml b/puppet/daily/index.xml index bc033ae51c0..95e28d938e2 100644 --- a/puppet/daily/index.xml +++ b/puppet/daily/index.xml @@ -1,7 +1,7 @@ GitHub Puppet Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:36:26Z + 2024-12-20T01:36:35Z Daily Trending of Puppet in GitHub \ No newline at end of file diff --git a/pure-data/daily/index.xml b/pure-data/daily/index.xml index 83741699d16..af606ba65b1 100644 --- a/pure-data/daily/index.xml +++ b/pure-data/daily/index.xml @@ -1,7 +1,7 @@ GitHub Pure Data Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:36:28Z + 2024-12-20T01:36:37Z Daily Trending of Pure Data in GitHub \ No newline at end of file diff --git a/purebasic/daily/index.xml b/purebasic/daily/index.xml index 45a5521705a..066310c5340 100644 --- a/purebasic/daily/index.xml +++ b/purebasic/daily/index.xml @@ -1,7 +1,7 @@ GitHub PureBasic Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:36:28Z + 2024-12-20T01:36:36Z Daily Trending of PureBasic in GitHub \ No newline at end of file diff --git a/purescript/daily/index.xml b/purescript/daily/index.xml index a6a7a710349..c2df21b80cf 100644 --- a/purescript/daily/index.xml +++ b/purescript/daily/index.xml @@ -1,7 +1,7 @@ GitHub PureScript Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:36:28Z + 2024-12-20T01:36:37Z Daily Trending of PureScript in GitHub \ No newline at end of file diff --git a/python-console/daily/index.xml b/python-console/daily/index.xml index 55ef96902f9..30b983503f3 100644 --- a/python-console/daily/index.xml +++ b/python-console/daily/index.xml @@ -1,7 +1,7 @@ GitHub Python console Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:36:29Z + 2024-12-20T01:36:38Z Daily Trending of Python console in GitHub \ No newline at end of file diff --git a/python-traceback/daily/index.xml b/python-traceback/daily/index.xml index 4812bec2445..ca1caa1f884 100644 --- a/python-traceback/daily/index.xml +++ b/python-traceback/daily/index.xml @@ -1,7 +1,7 @@ GitHub Python traceback Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:36:30Z + 2024-12-20T01:36:39Z Daily Trending of Python traceback in GitHub \ No newline at end of file diff --git a/python/daily/index.xml b/python/daily/index.xml index 5400c88540f..17836ab7b44 100644 --- a/python/daily/index.xml +++ b/python/daily/index.xml @@ -1,21 +1,7 @@ GitHub Python Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:36:31Z + 2024-12-20T01:36:39Z Daily Trending of Python in GitHub - - XiaoMi/ha_xiaomi_home - 2024-12-19T01:36:31Z - tag:github.com,2024-12-19:/XiaoMi/ha_xiaomi_home - - <p>Xiaomi Home Integration for Home Assistant</p><hr><h1>Xiaomi Home Integration for Home Assistant</h1> <p><a href="https://raw.githubusercontent.com/XiaoMi/ha_xiaomi_home/main/README.md">English</a> | <a href="https://raw.githubusercontent.com/XiaoMi/ha_xiaomi_home/main/doc/README_zh.md">简体中文</a></p> <p>Xiaomi Home Integration is an integrated component of Home Assistant supported by Xiaomi official. It allows you to use Xiaomi IoT smart devices in Home Assistant.</p> <h2>Installation</h2> <blockquote> <p>Home Assistant version requirement:</p> <ul> <li>Core $\geq$ 2024.11.0</li> <li>Operating System $\geq$ 13.0</li> </ul> </blockquote> <h3>Method 1: Git clone from GitHub</h3> <pre><code class="language-bash">cd config git clone https://github.com/XiaoMi/ha_xiaomi_home.git cd ha_xiaomi_home ./install.sh /config </code></pre> <p>We recommend this installation method, for it is convenient to switch to a tag when updating <code>xiaomi_home</code> to a certain version.</p> <p>For example, update to version v1.0.0</p> <pre><code class="language-bash">cd config/ha_xiaomi_home git checkout v1.0.0 ./install.sh /config </code></pre> <h3>Method 2: <a href="https://hacs.xyz/">HACS</a></h3> <p>HACS &gt; Overflow Menu &gt; Custom repositories &gt; Repository: <a href="https://github.com/XiaoMi/ha_xiaomi_home.git">https://github.com/XiaoMi/ha_xiaomi_home.git</a> &amp; Category: Integration &gt; ADD</p> <blockquote> <p>Xiaomi Home has not been added to the HACS store as a default yet. It's coming soon.</p> </blockquote> <h3>Method 3: Manually installation via <a href="https://github.com/home-assistant/addons/tree/master/samba">Samba</a> / <a href="https://github.com/hassio-addons/addon-ftp">FTPS</a></h3> <p>Download and copy <code>custom_components/xiaomi_home</code> folder to <code>config/custom_components</code> folder in your Home Assistant.</p> <h2>Configuration</h2> <h3>Login</h3> <p><a href="https://my.home-assistant.io/redirect/brand/?brand=xiaomi_home">Settings &gt; Devices &amp; services &gt; ADD INTEGRATION</a> &gt; Search <code>Xiaomi Home</code> &gt; NEXT &gt; Click here to login &gt; Sign in with Xiaomi account</p> <p><a href="https://my.home-assistant.io/redirect/config_flow_start/?domain=xiaomi_home"><img src="https://my.home-assistant.io/badges/config_flow_start.svg?sanitize=true" alt="Open your Home Assistant instance and start setting up a new integration."></a></p> <h3>Add MIoT Devices</h3> <p>After logging in successfully, a dialog box named "Select Home and Devices" pops up. You can select the home containing the device that you want to import in Home Assistant.</p> <h3>Multiple User Login</h3> <p>After a Xiaomi account login and its user configuration are completed, you can continue to add other Xiaomi accounts in the configured Xiaomi Home Integration page.</p> <p>Method: <a href="https://my.home-assistant.io/redirect/integration/?domain=xiaomi_home">Settings &gt; Devices &amp; services &gt; Configured &gt; Xiaomi Home</a> &gt; ADD HUB &gt; NEXT &gt; Click here to login &gt; Sign in with Xiaomi account</p> <p><a href="https://my.home-assistant.io/redirect/integration/?domain=xiaomi_home"><img src="https://my.home-assistant.io/badges/integration.svg?sanitize=true" alt="Open your Home Assistant instance and show an integration."></a></p> <h3>Update Configurations</h3> <p>You can change the configurations in the "Configuration Options" dialog box, in which you can update your user nickname and the list of the devices importing from Xiaomi Home APP, etc.</p> <p>Method: <a href="https://my.home-assistant.io/redirect/integration/?domain=xiaomi_home">Settings &gt; Devices &amp; services &gt; Configured &gt; Xiaomi Home</a> &gt; CONFIGURE &gt; Select the option to update</p> <h3>Debug Mode for Action</h3> <p>You can manually send Action command message with parameters to the device when the debug mode for action is activated. The user interface for sending the Action command with parameters is shown as a Text entity.</p> <p>Method: <a href="https://my.home-assistant.io/redirect/integration/?domain=xiaomi_home">Settings &gt; Devices &amp; services &gt; Configured &gt; Xiaomi Home</a> &gt; CONFIGURE &gt; Debug mode for action</p> <h2>Security</h2> <p>Xiaomi Home Integration and the affiliated cloud interface is provided by Xiaomi officially. You need to use your Xiaomi account to login to get your device list. Xiaomi Home Integration implements OAuth 2.0 login process, which does not keep your account password in the Home Assistant application. However, due to the limitation of the Home Assistant platform, the user information (including device information, certificates, tokens, etc.) of your Xiaomi account will be saved in the Home Assistant configuration file in clear text after successful login. You need to ensure that your Home Assistant configuration file is properly stored. The exposure of your configuration file may result in others logging in with your identity.</p> <h2>FAQ</h2> <ul> <li> <p>Does Xiaomi Home Integration support all Xiaomi Home devices?</p> <p>Xiaomi Home Integration currently supports most categories of Home device. Only a few categories are not supported. They are Bluetooth device, infrared device and virtual device.</p> </li> <li> <p>Does Xiaomi Home Integration support multiple Xiaomi accounts?</p> <p>Yes, it supports multiple Xiaomi accounts. Furthermore, Xiaomi Home Integration allows that devices belonging to different accounts can be added to a same area.</p> </li> <li> <p>Does Xiaomi Home Integration support local control?</p> <p>Local control is implemented by <a href="https://www.mi.com/shop/buy/detail?product_id=15755&amp;cfrom=search">Xiaomi Central Hub Gateway</a> (firmware version 3.4.0_0000 above) or Xiaomi home devices with built-in central hub gateway (software version 0.8.0 above) inside. If you do not have a Xiaomi central hub gateway or other devices having central hub gateway function, all control commands are sent through Xiaomi Cloud. The firmware for Xiaomi central hub gateway including the built-in central hub gateway supporting Home Assistant local control feature has not been released yet. Please refer to MIoT team's notification for upgrade plans.</p> <p>Xiaomi central hub gateway is only available in mainland China. In other regions, it is not available.</p> <p>Xiaomi Home Integration can also implement partial local control by enabling Xiaomi LAN control function. Xiaomi LAN control function can only control IP devices (devices connected to the router via WiFi or ethernet cable) in the same local area network as Home Assistant. It cannot control BLE Mesh, ZigBee, etc. devices. This function may cause some abnormalities. We recommend not to use this function. Xiaomi LAN control function is enabled by <a href="https://my.home-assistant.io/redirect/integration/?domain=xiaomi_home">Settings &gt; Devices &amp; services &gt; Configured &gt; Xiaomi Home</a> &gt; CONFIGURE &gt; Update LAN control configuration</p> <p>Xiaomi LAN control function is not restricted by region. It is available in all regions. However, if there is a central gateway in the local area network where Home Assistant is located, even Xiaomi LAN control function is enabled in the integration, it will not take effect.</p> </li> <li> <p>In which regions is Xiaomi Home Integration available?</p> <p>Xiaomi Home Integration can be used in the mainland of China, Europe, India, Russia, Singapore, and USA. As user data in Xiaomi Cloud of different regions is isolated, you need to choose your region when importing MIoT devices in the configuration process. Xiaomi Home Integration allows you to import devices of different regions to a same area.</p> </li> </ul> <h2>Principle of Messaging</h2> <h3>Control through the Cloud</h3> <div align="center"> <img src="https://raw.githubusercontent.com/XiaoMi/ha_xiaomi_home/main/doc/images/cloud_control.jpg" width="300"> <p>Image 1: Cloud control architecture</p> </div> <p>Xiaomi Home Integration subscribes to the interested device messages on the MQTT Broker in MIoT Cloud. When a device property changes or a device event occurs, the device sends an upstream message to MIoT Cloud, and the MQTT Broker pushes the subscribed device message to Xiaomi Home Integration. Because Xiaomi Home Integration does not need to poll to obtain the current device property value in the cloud, it can immediately receive the notification message when the properties change or the events occur. Thanks to the message subscription mechanism, Xiaomi Home Integration only queries the properties of all devices from the cloud once when the integration configuration is completed, which puts little access pressure on the cloud.</p> <p>Xiaomi Home Integration sends command messages to the devices via the HTTP interface of MIoT Cloud to control devices. The device reacts and responds after receiving the downstream message sent forward by MIoT Cloud.</p> <h3>Control locally</h3> <div align="center"> <img src="https://raw.githubusercontent.com/XiaoMi/ha_xiaomi_home/main/doc/images/local_control.jpg" width="300"> <p>Image 2: Local control architecture</p> </div> <p>Xiaomi central hub gateway contains a standard MQTT Broker, which implements a complete subscribe-publish mechanism. Xiaomi Home Integration subscribes to the interested device messages through Xiaomi central hub gateway. When a device property changes or a device event occurs, the device sends an upstream message to Xiaomi central hub gateway, and the MQTT Broker pushes the subscribed device message to Xiaomi Home Integration.</p> <p>When Xiaomi Home Integration needs to control a device, it publishes a device command message to the MQTT Broker, which is then forwarded to the device by Xiaomi central hub gateway. The device reacts and responds after receiving the downstream message from the gateway.</p> <h2>Mapping Relationship between MIoT-Spec-V2 and Home Assistant Entity</h2> <p><a href="https://iot.mi.com/v2/new/doc/introduction/knowledge/spec">MIoT-Spec-V2</a> is the abbreviation for MIoT Specification Version 2, which is an IoT protocol formulated by Xiaomi IoT platform to give a standard functional description of IoT devices. It includes function definition (referred to as data model by other IoT platforms), interaction model, message format, and encoding.</p> <p>In MIoT-Spec-V2 protocol, a product is defined as a device. A device contains several services. A service may have some properties, events and actions. Xiaomi Home Integration creates Home Assistant entities according to MIoT-Spec-V2. The conversion relationship is as follows.</p> <h3>General Conversion</h3> <ul> <li>Property</li> </ul> <table> <thead> <tr> <th>format</th> <th>access</th> <th>value-list</th> <th>value-range</th> <th>Entity in Home Assistant</th> </tr> </thead> <tbody> <tr> <td>writable</td> <td>string</td> <td>-</td> <td>-</td> <td>Text</td> </tr> <tr> <td>writable</td> <td>bool</td> <td>-</td> <td>-</td> <td>Switch</td> </tr> <tr> <td>writable</td> <td>not string &amp; not bool</td> <td>existent</td> <td>-</td> <td>Select</td> </tr> <tr> <td>writable</td> <td>not string &amp; not bool</td> <td>non-existent</td> <td>existent</td> <td>Number</td> </tr> <tr> <td>not writable</td> <td>-</td> <td>-</td> <td>-</td> <td>Sensor</td> </tr> </tbody> </table> <ul> <li>Event</li> </ul> <p>MIoT-Spec-V2 event is transformed to Event entity in Home Assistant. The event's parameters are also passed to entity's <code>_trigger_event</code>.</p> <ul> <li>Action</li> </ul> <table> <thead> <tr> <th>in</th> <th>Entity in Home Assistant</th> </tr> </thead> <tbody> <tr> <td>empty</td> <td>Button</td> </tr> <tr> <td>not empty</td> <td>Notify</td> </tr> </tbody> </table> <p>If the debug mode for action is activated, the Text entity will be created when the "in" field in the action spec is not empty.</p> <p>The "Attribute" item in the entity details page displays the format of the input parameter which is an ordered list, enclosed in square brackets []. The string elements in the list are enclosed in double quotation marks "".</p> <p>For example, the "Attributes" item in the details page of the Notify entity converted by the "Intelligent Speaker Execute Text Directive" action of xiaomi.wifispeaker.s12 siid=5, aiid=5 instance shows the action params as <code>[Text Content(str), Silent Execution(bool)]</code>. A properly formatted input is <code>["Hello", true]</code>.</p> <h3>Specific Conversion</h3> <p>MIoT-Spec-V2 uses URN for defining types. The format is <code>urn:&lt;namespace&gt;:&lt;type&gt;:&lt;name&gt;:&lt;value&gt;[:&lt;vendor-product&gt;:&lt;version&gt;]</code>, in which <code>name</code> is a human-readable word or phrase describing the instance of device, service, property, event and action. Xiaomi Home Integration first determines whether to convert the MIoT-Spec-V2 instance into a specific Home Assistant entity based on the instance's name. For the instance that does not meet the specific conversion rules, general conversion rules are used for conversion.</p> <p><code>namespace</code> is the namespace of MIoT-Spec-V2 instance. When its value is miot-spec-v2, it means that the specification is defined by Xiaomi. When its value is bluetooth-spec, it means that the specification is defined by Bluetooth Special Interest Group (SIG). When its value is not miot-spec-v2 or bluetooth-spec, it means that the specification is defined by other vendors. If MIoT-Spec-V2 <code>namespace</code> is not miot-spec-v2, a star mark <code>*</code> is added in front of the entity's name .</p> <ul> <li>Device</li> </ul> <p>The conversion follows <code>SPEC_DEVICE_TRANS_MAP</code>.</p> <pre><code>{ '&lt;device instance name&gt;':{ 'required':{ '&lt;service instance name&gt;':{ 'required':{ 'properties': { '&lt;property instance name&gt;': set&lt;property access: str&gt; }, 'events': set&lt;event instance name: str&gt;, 'actions': set&lt;action instance name: str&gt; }, 'optional':{ 'properties': set&lt;property instance name: str&gt;, 'events': set&lt;event instance name: str&gt;, 'actions': set&lt;action instance name: str&gt; } } }, 'optional':{ '&lt;service instance name&gt;':{ 'required':{ 'properties': { '&lt;property instance name&gt;': set&lt;property access: str&gt; }, 'events': set&lt;event instance name: str&gt;, 'actions': set&lt;action instance name: str&gt; }, 'optional':{ 'properties': set&lt;property instance name: str&gt;, 'events': set&lt;event instance name: str&gt;, 'actions': set&lt;action instance name: str&gt; } } }, 'entity': str } } </code></pre> <p>The "required" field under "device instance name" indicates the required services of the device. The "optional" field under "device instance name" indicates the optional services of the device. The "entity" field indicates the Home Assistant entity to be created. The "required" and the "optional" field under "service instance name" are required and optional properties, events and actions of the service respectively. The value of "property instance name" under "required" "properties" field is the access mode of the property. The condition for a successful match is that the value of "property instance name" is a subset of the access mode of the corresponding MIoT-Spec-V2 property instance.</p> <p>Home Assistant entity will not be created if MIoT-Spec-V2 device instance does not contain all required services, properties, events or actions.</p> <ul> <li>Service</li> </ul> <p>The conversion follows <code>SPEC_SERVICE_TRANS_MAP</code>.</p> <pre><code>{ '&lt;service instance name&gt;':{ 'required':{ 'properties': { '&lt;property instance name&gt;': set&lt;property access: str&gt; }, 'events': set&lt;event instance name: str&gt;, 'actions': set&lt;action instance name: str&gt; }, 'optional':{ 'properties': set&lt;property instance name: str&gt;, 'events': set&lt;event instance name: str&gt;, 'actions': set&lt;action instance name: str&gt; }, 'entity': str } } </code></pre> <p>The "required" field under "service instance name" indicates the required properties, events and actions of the service. The "optional" field indicates the optional properties, events and actions of the service. The "entity" field indicates the Home Assistant entity to be created. The value of "property instance name" under "required" "properties" field is the access mode of the property. The condition for a successful match is that the value of "property instance name" is a subset of the access mode of the corresponding MIoT-Spec-V2 property instance.</p> <p>Home Assistant entity will not be created if MIoT-Spec-V2 service instance does not contain all required properties, events or actions.</p> <ul> <li>Property</li> </ul> <p>The conversion follows <code>SPEC_PROP_TRANS_MAP</code>.</p> <pre><code>{ 'entities':{ '&lt;entity name&gt;':{ 'format': set&lt;str&gt;, 'access': set&lt;str&gt; } }, 'properties': { '&lt;property instance name&gt;':{ 'device_class': str, 'entity': str } } } </code></pre> <p>The "format" field under "entity name" represents the data format of the property, and matching with one value indicates a successful match. The "access" field under "entity name" represents the access mode of the property, and matching with all values is considered a successful match.</p> <p>The "entity" field under "property instance name", of which value is one of entity name under "entities" field, indicates the Home Assistant entity to be created. The "device_class" field under "property instance name" indicates the Home Assistant entity's <code>_attr_device_class</code>.</p> <ul> <li>Event</li> </ul> <p>The conversion follows <code>SPEC_EVENT_TRANS_MAP</code>.</p> <pre><code>{ '&lt;event instance name&gt;': str } </code></pre> <p>The value of the event instance name indicates <code>_attr_device_class</code> of the Home Assistant entity to be created.</p> <h3>MIoT-Spec-V2 Filter</h3> <p><code>spec_filter.json</code> is used to filter out the MIoT-Spec-V2 instance that will not be converted to Home Assistant entity.</p> <p>The format of <code>spec_filter.json</code> is as follows.</p> <pre><code>{ "&lt;MIoT-Spec-V2 device instance&gt;":{ "services": list&lt;service_iid: str&gt;, "properties": list&lt;service_iid.property_iid: str&gt;, "events": list&lt;service_iid.event_iid: str&gt;, "actions": list&lt;service_iid.action_iid: str&gt;, } } </code></pre> <p>The key of <code>spec_filter.json</code> dictionary is the urn excluding the "version" field of the MIoT-Spec-V2 device instance. The firmware of different versions of the same product may be associated with the MIoT-Spec-V2 device instances of different versions. It is required that the MIoT-Spec-V2 instance of a higher version must contain all MIoT-Spec-V2 instances of the lower versions when a vendor defines the MIoT-Spec-V2 of its product on MIoT platform. Thus, the key of <code>spec_filter.json</code> does not need to specify the version number of MIoT-Spec-V2 device instance.</p> <p>The value of "services", "properties", "events" or "actions" fields under "device instance" is the instance id (iid) of the service, property, event or action that will be ignored in the conversion process. Wildcard matching is supported.</p> <p>Example:</p> <pre><code>{ "urn:miot-spec-v2:device:television:0000A010:xiaomi-rmi1":{ "services": ["*"] # Filter out all services. It is equivalent to completely ignoring the device with such MIoT-Spec-V2 device instance. }, "urn:miot-spec-v2:device:gateway:0000A019:xiaomi-hub1": { "services": ["3"], # Filter out the service whose iid=3. "properties": ["4.*"] # Filter out all properties in the service whose iid=4. "events": ["4.1"], # Filter out the iid=1 event in the iid=4 service. "actions": ["4.1"] # Filter out the iid=1 action in the iid=4 service. } } </code></pre> <p>Device information service (urn:miot-spec-v2:service:device-information:00007801) of all devices will never be converted to Home Assistant entity.</p> <h2>Multiple Language Support</h2> <p>There are 8 languages available for selection in the config flow language option of Xiaomi Home, including Simplified Chinese, Traditional Chinese, English, Spanish, Russian, French, German, and Japanese. The config flow page in Simplified Chinese and English has been manually reviewed by the developer. Other languages are translated by machine translation. If you want to modify the words and sentences in the config flow page, you need to modify the json file of the certain language in <code>custom_components/xiaomi_home/translations/</code> and <code>custom_components/xiaomi_home/miot/i18n/</code> directory.</p> <p>When displaying Home Assistant entity name, Xiaomi Home downloads the multiple language file configured by the device vendor from MIoT Cloud, which contains translations for MIoT-Spec-V2 instances of the device. <code>multi_lang.json</code> is a locally maintained multiple language dictionary, which has a higher priority than the multiple language file obtained from the cloud and can be used to supplement or modify the multiple language translation of devices.</p> <p>The format of <code>multi_lang.json</code> is as follows.</p> <pre><code>{ "&lt;MIoT-Spec-V2 device instance&gt;": { "&lt;language code&gt;": { "&lt;instance code&gt;": &lt;translation: str&gt; } } } </code></pre> <p>The key of <code>multi_lang.json</code> dictionary is the urn excluding the "version" field of the MIoT-Spec-V2 device instance.</p> <p>The language code is zh-Hans, zh-Hant, en, es, ru, fr, de, or ja, corresponding to the 8 selectable languages mentioned above.</p> <p>The instance code is the code of the MIoT-Spec-V2 instance, which is in the format of:</p> <pre><code>service:&lt;siid&gt; # service service:&lt;siid&gt;:property:&lt;piid&gt; # property service:&lt;siid&gt;:property:&lt;piid&gt;:valuelist:&lt;value&gt; # the value in value-list of a property service:&lt;siid&gt;:event:&lt;eiid&gt; # event service:&lt;siid&gt;:action:&lt;aiid&gt; # action </code></pre> <p>siid, piid, eiid, aiid and value are all decimal three-digit integers.</p> <p>Example:</p> <pre><code>{ "urn:miot-spec-v2:device:health-pot:0000A051:chunmi-a1": { "zh-Hant": { "service:002": "養生壺", "service:002:property:001": "工作狀態", "service:002:property:001:valuelist:000": "待機中", "service:002:action:002": "停止烹飪", "service:005:event:001": "烹飪完成" } } } </code></pre> <blockquote> <p>If you edit <code>specv2entity.py</code>, <code>spec_filter.json</code> or <code>multi_lang.json</code> in the <code>custom_components/xiaomi_home/miot/specs</code> directory in your Home Assistant, you need to update the entity conversion rule in the integration's CONFIGURE page to take effect. Method: <a href="https://my.home-assistant.io/redirect/integration/?domain=xiaomi_home">Settings &gt; Devices &amp; services &gt; Configured &gt; Xiaomi Home</a> &gt; CONFIGURE &gt; Update Entity Conversion Rule</p> </blockquote> <h2>Documents</h2> <ul> <li><a href="https://raw.githubusercontent.com/XiaoMi/ha_xiaomi_home/main/LICENSE.md">License</a></li> <li>Contribution Guidelines: <a href="https://raw.githubusercontent.com/XiaoMi/ha_xiaomi_home/main/CONTRIBUTING.md">English</a> | <a href="https://raw.githubusercontent.com/XiaoMi/ha_xiaomi_home/main/doc/CONTRIBUTING_zh.md">简体中文</a></li> <li><a href="https://raw.githubusercontent.com/XiaoMi/ha_xiaomi_home/main/CHANGELOG.md">ChangeLog</a></li> <li>Development Documents: <a href="https://developers.home-assistant.io/docs/creating_component_index">https://developers.home-assistant.io/docs/creating_component_index</a></li> </ul> <h2>Directory Structure</h2> <ul> <li>miot: core code.</li> <li>miot/miot_client: Adding a login user in the integration needs adding a miot_client instance.</li> <li>miot/miot_cloud: Contains functions related to the cloud service, including OAuth login process, HTTP interface functions (to get the user information, to send the device control command, etc.)</li> <li>miot/miot_device: Device entity, including device information, processing logic of property, event and action.</li> <li>miot/miot_mips: Message bus for subscribing and publishing method.</li> <li>miot/miot_spec: Parse MIoT-Spec-V2.</li> <li>miot/miot_lan: Device LAN control, including device discovery, device control, etc.</li> <li>miot/miot_mdns: Central hub gateway service LAN discovery.</li> <li>miot/miot_network: Obtain network status and network information.</li> <li>miot/miot_storage: File storage for the integration.</li> <li>miot/test: Test scripts.</li> <li>config_flow: Config flow.</li> </ul> - - - seleniumbase/SeleniumBase - 2024-12-19T01:36:31Z - tag:github.com,2024-12-19:/seleniumbase/SeleniumBase - - <p>Python APIs for web automation, testing, and bypassing bot-detection.</p><hr><h1>SeleniumBase</h1> <p align="center"><a href="https://github.com/seleniumbase/SeleniumBase/"><img src="https://seleniumbase.github.io/cdn/img/super_logo_sb3.png" alt="SeleniumBase" title="SeleniumBase" width="350"></a></p> <p align="center" class="hero__title"><b>All-in-one Browser Automation Framework:<br>Web Crawling / Testing / Scraping / Stealth</b></p> <p align="center"><a href="https://pypi.python.org/pypi/seleniumbase" target="_blank"><img src="https://img.shields.io/pypi/v/seleniumbase.svg?color=3399EE" alt="PyPI version"></a> <a href="https://github.com/seleniumbase/SeleniumBase/releases" target="_blank"><img src="https://img.shields.io/github/v/release/seleniumbase/SeleniumBase.svg?color=22AAEE" alt="GitHub version"></a> <a href="https://seleniumbase.io"><img src="https://img.shields.io/badge/docs-seleniumbase.io-11BBAA.svg?sanitize=true" alt="SeleniumBase Docs"></a> <a href="https://github.com/seleniumbase/SeleniumBase/actions" target="_blank"><img src="https://github.com/seleniumbase/SeleniumBase/workflows/CI%20build/badge.svg?sanitize=true" alt="SeleniumBase GitHub Actions"></a> <a href="https://discord.gg/EdhQTn3EyE" target="_blank"><img src="https://img.shields.io/badge/join-discord-infomational" alt="Join the SeleniumBase chat on Discord"></a></p> <p align="center"> <a href="https://raw.githubusercontent.com/seleniumbase/SeleniumBase/master/#python_installation">🚀 Start</a> | <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/help_docs/features_list.md">🏰 Features</a> | <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/help_docs/customizing_test_runs.md">🎛️ Options</a> | <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/examples/ReadMe.md">📚 Examples</a> | <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/seleniumbase/console_scripts/ReadMe.md">🌠 Scripts</a> | <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/help_docs/mobile_testing.md">📱 Mobile</a> <br> <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/help_docs/method_summary.md">📘 APIs</a> | <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/help_docs/syntax_formats.md"> 🔠 Formats</a> | <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/help_docs/recorder_mode.md">🔴 Recorder</a> | <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/examples/example_logs/ReadMe.md">📊 Dashboard</a> | <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/help_docs/locale_codes.md">🗾 Locales</a> | <a href="https://seleniumbase.io/devices/?url=seleniumbase.com">💻 Farm</a> <br> <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/help_docs/commander.md">🎖️ GUI</a> | <a href="https://seleniumbase.io/demo_page">📰 TestPage</a> | <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/help_docs/uc_mode.md">👤 UC Mode</a> | <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/examples/cdp_mode/ReadMe.md">🐙 CDP Mode</a> | <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/examples/chart_maker/ReadMe.md">📶 Charts</a> | <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/seleniumbase/utilities/selenium_grid/ReadMe.md">🌐 Grid</a> <br> <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/help_docs/how_it_works.md">👁️ How</a> | <a href="https://github.com/seleniumbase/SeleniumBase/tree/master/examples/migration/raw_selenium">🚝 Migrate</a> | <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/help_docs/case_plans.md">🗂️ CasePlans</a> | <a href="https://github.com/seleniumbase/SeleniumBase/tree/master/examples/boilerplates">♻️ Template</a> | <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/examples/master_qa/ReadMe.md">🧬 Hybrid</a> | <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/examples/tour_examples/ReadMe.md">🚎 Tours</a> <br> <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/integrations/github/workflows/ReadMe.md">🤖 CI/CD</a> | <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/help_docs/js_package_manager.md">🕹️ JSMgr</a> | <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/help_docs/translations.md">🌏 Translator</a> | <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/examples/presenter/ReadMe.md">🎞️ Presenter</a> | <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/examples/dialog_boxes/ReadMe.md">🛂 Dialog</a> | <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/examples/visual_testing/ReadMe.md">🖼️ Visual</a> <br> </p> <p>SeleniumBase is the professional toolkit for web automation activities. Built for testing websites, bypassing CAPTCHAs, enhancing productivity, completing tasks, and scaling your business.</p> <hr> <p>📚 Learn from <a href="https://github.com/seleniumbase/SeleniumBase/tree/master/examples"><strong>over 200 examples</strong> in the <strong>SeleniumBase/examples/</strong> folder</a>.</p> <p>🐙 Note that <a translate="no" href="https://github.com/seleniumbase/SeleniumBase/raw/master/help_docs/uc_mode.md"><b>UC Mode</b></a> / <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/examples/cdp_mode/ReadMe.md"><b>CDP Mode</b></a> (Stealth Mode) have their own ReadMe files.</p> <p>ℹ️ Most scripts run with raw <code translate="no"><b>python</b></code>, although some scripts use <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/help_docs/syntax_formats.md">Syntax Formats</a> that expect <a href="https://docs.pytest.org/en/latest/how-to/usage.html" translate="no"><b>pytest</b></a> (a Python unit-testing framework included with SeleniumBase that can discover, collect, and run tests automatically).</p> <hr> <p align="left">📗 Here's <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/examples/raw_google.py">raw_google.py</a>, which performs a Google search:</p> <pre><code class="language-python">from seleniumbase import SB with SB(test=True) as sb: sb.open("https://google.com/ncr") sb.type('[title="Search"]', "SeleniumBase GitHub page\n") sb.click('[href*="github.com/seleniumbase/"]') sb.save_screenshot_to_logs() # ./latest_logs/ print(sb.get_page_title()) </code></pre> <blockquote> <p><code>python raw_google.py</code></p> </blockquote> <p><a href="https://github.com/seleniumbase/SeleniumBase/raw/master/examples/raw_google.py"><img src="https://seleniumbase.github.io/cdn/gif/google_search.gif" alt="SeleniumBase Test" title="SeleniumBase Test" width="420"></a></p> <hr> <p align="left">📗 Here's an example of bypassing Cloudflare's challenge page: <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/examples/cdp_mode/raw_gitlab.py">SeleniumBase/examples/cdp_mode/raw_gitlab.py</a></p> <pre><code class="language-python">from seleniumbase import SB with SB(uc=True, test=True, locale_code="en") as sb: url = "https://gitlab.com/users/sign_in" sb.activate_cdp_mode(url) sb.uc_gui_click_captcha() sb.sleep(2) </code></pre> <p><img src="https://seleniumbase.github.io/other/cf_sec.jpg" title="SeleniumBase" width="332"> <img src="https://seleniumbase.github.io/other/gitlab_bypass.png" title="SeleniumBase" width="288"></p> <hr> <p align="left">📗 Here's <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/examples/test_get_swag.py">test_get_swag.py</a>, which tests an e-commerce site:</p> <pre><code class="language-python">from seleniumbase import BaseCase BaseCase.main(__name__, __file__) # Call pytest class MyTestClass(BaseCase): def test_swag_labs(self): self.open("https://www.saucedemo.com") self.type("#user-name", "standard_user") self.type("#password", "secret_sauce\n") self.assert_element("div.inventory_list") self.click('button[name*="backpack"]') self.click("#shopping_cart_container a") self.assert_text("Backpack", "div.cart_item") self.click("button#checkout") self.type("input#first-name", "SeleniumBase") self.type("input#last-name", "Automation") self.type("input#postal-code", "77123") self.click("input#continue") self.click("button#finish") self.assert_text("Thank you for your order!") </code></pre> <blockquote> <p><code>pytest test_get_swag.py</code></p> </blockquote> <p><a href="https://github.com/seleniumbase/SeleniumBase/raw/master/examples/test_get_swag.py"><img src="https://seleniumbase.github.io/cdn/gif/fast_swag_2.gif" alt="SeleniumBase Test" title="SeleniumBase Test" width="480"></a></p> <blockquote> <p>(The default browser is <code>--chrome</code> if not set.)</p> </blockquote> <hr> <p align="left">📗 Here's <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/examples/test_coffee_cart.py" target="_blank">test_coffee_cart.py</a>, which verifies an e-commerce site:</p> <pre><code class="language-bash">pytest test_coffee_cart.py --demo </code></pre> <p align="left"><a href="https://seleniumbase.io/coffee/" target="_blank"><img src="https://seleniumbase.github.io/cdn/gif/coffee_cart.gif" width="480" alt="SeleniumBase Coffee Cart Test" title="SeleniumBase Coffee Cart Test"></a></p> <blockquote> <p>(<code translate="no">--demo</code> mode slows down tests and highlights actions)</p> </blockquote> <hr> <p><a id="multiple_examples"></a></p> <p align="left">📗 Here's <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/examples/test_demo_site.py" target="_blank">test_demo_site.py</a>, which covers several actions:</p> <pre><code class="language-bash">pytest test_demo_site.py </code></pre> <p align="left"><a href="https://seleniumbase.io/demo_page" target="_blank"><img src="https://seleniumbase.github.io/cdn/gif/demo_page_5.gif" width="480" alt="SeleniumBase Example" title="SeleniumBase Example"></a></p> <blockquote> <p>Easy to type, click, select, toggle, drag &amp; drop, and more.</p> </blockquote> <p>(For more examples, see the <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/examples/ReadMe.md">SeleniumBase/examples/</a> folder.)</p> <hr> <p align="left"><a href="https://github.com/seleniumbase/SeleniumBase/"><img src="https://seleniumbase.github.io/cdn/img/super_logo_sb3.png" alt="SeleniumBase" title="SeleniumBase" width="232"></a></p> <blockquote> <p dir="auto"><strong>Explore the README:</strong></p> <ul dir="auto"> <li><a href="https://raw.githubusercontent.com/seleniumbase/SeleniumBase/master/#install_seleniumbase"><strong>Get Started / Installation</strong></a></li> <li><a href="https://raw.githubusercontent.com/seleniumbase/SeleniumBase/master/#basic_example_and_usage"><strong>Basic Example / Usage</strong></a></li> <li><a href="https://raw.githubusercontent.com/seleniumbase/SeleniumBase/master/#common_methods"><strong>Common Test Methods</strong></a></li> <li><a href="https://raw.githubusercontent.com/seleniumbase/SeleniumBase/master/#fun_facts"><strong>Fun Facts / Learn More</strong></a></li> <li><a href="https://raw.githubusercontent.com/seleniumbase/SeleniumBase/master/#demo_mode_and_debugging"><strong>Demo Mode / Debugging</strong></a></li> <li><a href="https://raw.githubusercontent.com/seleniumbase/SeleniumBase/master/#command_line_options"><strong>Command-line Options</strong></a></li> <li><a href="https://raw.githubusercontent.com/seleniumbase/SeleniumBase/master/#directory_configuration"><strong>Directory Configuration</strong></a></li> <li><a href="https://raw.githubusercontent.com/seleniumbase/SeleniumBase/master/#seleniumbase_dashboard"><strong>SeleniumBase Dashboard</strong></a></li> <li><a href="https://raw.githubusercontent.com/seleniumbase/SeleniumBase/master/#creating_visual_reports"><strong>Generating Test Reports</strong></a></li> </ul> </blockquote> <hr> <details> <summary> ▶️ How is <b>SeleniumBase</b> different from raw Selenium? (<b>click to expand</b>)</summary> <div> <p>💡 SeleniumBase is a Python framework for browser automation and testing. SeleniumBase uses <a href="https://www.w3.org/TR/webdriver2/#endpoints" target="_blank">Selenium/WebDriver</a> APIs and incorporates test-runners such as <code translate="no">pytest</code>, <code translate="no">pynose</code>, and <code translate="no">behave</code> to provide organized structure, test discovery, test execution, test state (<i>eg. passed, failed, or skipped</i>), and command-line options for changing default settings (<i>eg. browser selection</i>). With raw Selenium, you would need to set up your own options-parser for configuring tests from the command-line.</p> <p>💡 SeleniumBase's driver manager gives you more control over automatic driver downloads. (Use <code translate="no">--driver-version=VER</code> with your <code translate="no">pytest</code> run command to specify the version.) By default, SeleniumBase will download a driver version that matches your major browser version if not set.</p> <p>💡 SeleniumBase automatically detects between CSS Selectors and XPath, which means you don't need to specify the type of selector in your commands (<i>but optionally you could</i>).</p> <p>💡 SeleniumBase methods often perform multiple actions in a single method call. For example, <code translate="no">self.type(selector, text)</code> does the following:<br>1. Waits for the element to be visible.<br>2. Waits for the element to be interactive.<br>3. Clears the text field.<br>4. Types in the new text.<br>5. Presses Enter/Submit if the text ends in <code translate="no">"\n"</code>.<br>With raw Selenium, those actions require multiple method calls.</p> <p>💡 SeleniumBase uses default timeout values when not set:<br> ✅ <code translate="no">self.click("button")</code><br> With raw Selenium, methods would fail instantly (<i>by default</i>) if an element needed more time to load:<br> ❌ <code translate="no">self.driver.find_element(by="css selector", value="button").click()</code><br> (Reliable code is better than unreliable code.)</p> <p>💡 SeleniumBase lets you change the explicit timeout values of methods:<br> ✅ <code translate="no">self.click("button", timeout=10)</code><br> With raw Selenium, that requires more code:<br> ❌ <code translate="no">WebDriverWait(driver, 10).until(EC.element_to_be_clickable("css selector", "button")).click()</code><br> (Simple code is better than complex code.)</p> <p>💡 SeleniumBase gives you clean error output when a test fails. With raw Selenium, error messages can get very messy.</p> <p>💡 SeleniumBase gives you the option to generate a dashboard and reports for tests. It also saves screenshots from failing tests to the <code translate="no">./latest_logs/</code> folder. Raw <a href="https://www.selenium.dev/documentation/webdriver/" translate="no" target="_blank">Selenium</a> does not have these options out-of-the-box.</p> <p>💡 SeleniumBase includes desktop GUI apps for running tests, such as <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/help_docs/commander.md" translate="no">SeleniumBase Commander</a> for <code translate="no">pytest</code> and <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/examples/behave_bdd/ReadMe.md" translate="no">SeleniumBase Behave GUI</a> for <code translate="no">behave</code>.</p> <p>💡 SeleniumBase has its own <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/help_docs/recorder_mode.md">Recorder / Test Generator</a> for creating tests from manual browser actions.</p> <p>💡 SeleniumBase comes with <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/help_docs/case_plans.md">test case management software, ("CasePlans")</a>, for organizing tests and step descriptions.</p> <p>💡 SeleniumBase includes tools for <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/examples/chart_maker/ReadMe.md">building data apps, ("ChartMaker")</a>, which can generate JavaScript from Python.</p> </div> </details> <hr> <p>📚 <b>Learn about different ways of writing tests:</b></p> <p align="left">📗📝 Here's <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/examples/test_simple_login.py">test_simple_login.py</a>, which uses <code translate="no"><a href="https://github.com/seleniumbase/SeleniumBase/raw/master/seleniumbase/fixtures/base_case.py">BaseCase</a></code> class inheritance, and runs with <a href="https://docs.pytest.org/en/latest/how-to/usage.html">pytest</a> or <a href="https://github.com/mdmintz/pynose">pynose</a>. (Use <code translate="no">self.driver</code> to access Selenium's raw <code translate="no">driver</code>.)</p> <pre><code class="language-python">from seleniumbase import BaseCase BaseCase.main(__name__, __file__) class TestSimpleLogin(BaseCase): def test_simple_login(self): self.open("seleniumbase.io/simple/login") self.type("#username", "demo_user") self.type("#password", "secret_pass") self.click('a:contains("Sign in")') self.assert_exact_text("Welcome!", "h1") self.assert_element("img#image1") self.highlight("#image1") self.click_link("Sign out") self.assert_text("signed out", "#top_message") </code></pre> <p align="left">📘📝 Here's <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/examples/raw_login_sb.py">raw_login_sb.py</a>, which uses the <b><code translate="no">SB</code></b> Context Manager. Runs with pure <code translate="no">python</code>. (Use <code translate="no">sb.driver</code> to access Selenium's raw <code translate="no">driver</code>.)</p> <pre><code class="language-python">from seleniumbase import SB with SB() as sb: sb.open("seleniumbase.io/simple/login") sb.type("#username", "demo_user") sb.type("#password", "secret_pass") sb.click('a:contains("Sign in")') sb.assert_exact_text("Welcome!", "h1") sb.assert_element("img#image1") sb.highlight("#image1") sb.click_link("Sign out") sb.assert_text("signed out", "#top_message") </code></pre> <p align="left">📙📝 Here's <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/examples/raw_login_driver.py">raw_login_driver.py</a>, which uses the <b><code translate="no">Driver</code></b> Manager. Runs with pure <code translate="no">python</code>. (The <code>driver</code> is an improved version of Selenium's raw <code translate="no">driver</code>, with more methods.)</p> <pre><code class="language-python">from seleniumbase import Driver driver = Driver() try: driver.open("seleniumbase.io/simple/login") driver.type("#username", "demo_user") driver.type("#password", "secret_pass") driver.click('a:contains("Sign in")') driver.assert_exact_text("Welcome!", "h1") driver.assert_element("img#image1") driver.highlight("#image1") driver.click_link("Sign out") driver.assert_text("signed out", "#top_message") finally: driver.quit() </code></pre> <hr> <p><a id="python_installation"></a></p> <h2><img src="https://seleniumbase.github.io/cdn/img/python_logo.png" title="SeleniumBase" width="42"> Set up Python &amp; Git:</h2> <p><a href="https://www.python.org/downloads/"><img src="https://img.shields.io/pypi/pyversions/seleniumbase.svg?color=FACE42" title="Supported Python Versions"></a></p> <p>🔵 Add <b><a href="https://www.python.org/downloads/">Python</a></b> and <b><a href="https://git-scm.com/">Git</a></b> to your System PATH.</p> <p>🔵 Using a <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/help_docs/virtualenv_instructions.md">Python virtual env</a> is recommended.</p> <p><a id="install_seleniumbase"></a></p> <h2><img src="https://seleniumbase.github.io/img/logo7.png" title="SeleniumBase" width="32"> Install SeleniumBase:</h2> <p><strong>You can install <code>seleniumbase</code> from <a href="https://pypi.org/project/seleniumbase/">PyPI</a> or <a href="https://github.com/seleniumbase/SeleniumBase">GitHub</a>:</strong></p> <p>🔵 <strong>How to install <code>seleniumbase</code> from PyPI:</strong></p> <pre><code class="language-bash">pip install seleniumbase </code></pre> <ul> <li>(Add <code>--upgrade</code> OR <code>-U</code> to upgrade SeleniumBase.)</li> <li>(Add <code>--force-reinstall</code> to upgrade indirect packages.)</li> <li>(Use <code>pip3</code> if multiple versions of Python are present.)</li> </ul> <p>🔵 <strong>How to install <code>seleniumbase</code> from a GitHub clone:</strong></p> <pre><code class="language-bash">git clone https://github.com/seleniumbase/SeleniumBase.git cd SeleniumBase/ pip install -e . </code></pre> <p>🔵 <strong>How to upgrade an existing install from a GitHub clone:</strong></p> <pre><code class="language-bash">git pull pip install -e . </code></pre> <p>🔵 <strong>Type <code>seleniumbase</code> or <code>sbase</code> to verify that SeleniumBase was installed successfully:</strong></p> <pre><code class="language-bash"> ___ _ _ ___ / __| ___| |___ _ _ (_)_ _ _ __ | _ ) __ _ ______ \__ \/ -_) / -_) ' \| | \| | ' \ | _ \/ _` (_-&lt; -_) |___/\___|_\___|_||_|_|\_,_|_|_|_\|___/\__,_/__|___| ---------------------------------------------------- ╭──────────────────────────────────────────────────╮ │ * USAGE: "seleniumbase [COMMAND] [PARAMETERS]" │ │ * OR: "sbase [COMMAND] [PARAMETERS]" │ │ │ │ COMMANDS: PARAMETERS / DESCRIPTIONS: │ │ get / install [DRIVER_NAME] [OPTIONS] │ │ methods (List common Python methods) │ │ options (List common pytest options) │ │ behave-options (List common behave options) │ │ gui / commander [OPTIONAL PATH or TEST FILE] │ │ behave-gui (SBase Commander for Behave) │ │ caseplans [OPTIONAL PATH or TEST FILE] │ │ mkdir [DIRECTORY] [OPTIONS] │ │ mkfile [FILE.py] [OPTIONS] │ │ mkrec / codegen [FILE.py] [OPTIONS] │ │ recorder (Open Recorder Desktop App.) │ │ record (If args: mkrec. Else: App.) │ │ mkpres [FILE.py] [LANG] │ │ mkchart [FILE.py] [LANG] │ │ print [FILE] [OPTIONS] │ │ translate [SB_FILE.py] [LANG] [ACTION] │ │ convert [WEBDRIVER_UNITTEST_FILE.py] │ │ extract-objects [SB_FILE.py] │ │ inject-objects [SB_FILE.py] [OPTIONS] │ │ objectify [SB_FILE.py] [OPTIONS] │ │ revert-objects [SB_FILE.py] [OPTIONS] │ │ encrypt / obfuscate │ │ decrypt / unobfuscate │ │ proxy (Start a basic proxy server) │ │ download server (Get Selenium Grid JAR file) │ │ grid-hub [start|stop] [OPTIONS] │ │ grid-node [start|stop] --hub=[HOST/IP] │ │ │ │ * EXAMPLE =&gt; "sbase get chromedriver stable" │ │ * For command info =&gt; "sbase help [COMMAND]" │ │ * For info on all commands =&gt; "sbase --help" │ ╰──────────────────────────────────────────────────╯ </code></pre> <h3>🔵 Downloading webdrivers:</h3> <p>✅ SeleniumBase automatically downloads webdrivers as needed, such as <code>chromedriver</code>.</p> <div></div> <details> <summary> ▶️ Here's sample output from a chromedriver download. (<b>click to expand</b>)</summary> <pre><code class="language-bash">*** chromedriver to download = 131.0.6778.108 (Latest Stable) Downloading chromedriver-mac-arm64.zip from: https://storage.googleapis.com/chrome-for-testing-public/131.0.6778.108/mac-arm64/chromedriver-mac-arm64.zip ... Download Complete! Extracting ['chromedriver'] from chromedriver-mac-arm64.zip ... Unzip Complete! The file [chromedriver] was saved to: ~/github/SeleniumBase/seleniumbase/drivers/ chromedriver Making [chromedriver 131.0.6778.108] executable ... [chromedriver 131.0.6778.108] is now ready for use! </code></pre> </details> <p><a id="basic_example_and_usage"></a></p> <h2><img src="https://seleniumbase.github.io/img/logo7.png" title="SeleniumBase" width="32"> Basic Example / Usage:</h2> <p>🔵 If you've cloned SeleniumBase, you can run tests from the <a href="https://github.com/seleniumbase/SeleniumBase/tree/master/examples">examples/</a> folder.</p> <p align="left">Here's <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/examples/my_first_test.py">my_first_test.py</a>:</p> <pre><code class="language-bash">cd examples/ pytest my_first_test.py </code></pre> <p><a href="https://github.com/seleniumbase/SeleniumBase/raw/master/examples/my_first_test.py"><img src="https://seleniumbase.github.io/cdn/gif/fast_swag_2.gif" alt="SeleniumBase Test" title="SeleniumBase Test" width="480"></a></p> <p align="left"><b>Here's the full code for <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/examples/my_first_test.py">my_first_test.py</a>:</b></p> <pre><code class="language-python">from seleniumbase import BaseCase BaseCase.main(__name__, __file__) class MyTestClass(BaseCase): def test_swag_labs(self): self.open("https://www.saucedemo.com") self.type("#user-name", "standard_user") self.type("#password", "secret_sauce\n") self.assert_element("div.inventory_list") self.assert_exact_text("Products", "span.title") self.click('button[name*="backpack"]') self.click("#shopping_cart_container a") self.assert_exact_text("Your Cart", "span.title") self.assert_text("Backpack", "div.cart_item") self.click("button#checkout") self.type("#first-name", "SeleniumBase") self.type("#last-name", "Automation") self.type("#postal-code", "77123") self.click("input#continue") self.assert_text("Checkout: Overview") self.assert_text("Backpack", "div.cart_item") self.assert_text("29.99", "div.inventory_item_price") self.click("button#finish") self.assert_exact_text("Thank you for your order!", "h2") self.assert_element('img[alt="Pony Express"]') self.js_click("a#logout_sidebar_link") self.assert_element("div#login_button_container") </code></pre> <ul> <li>By default, <strong><a href="https://www.w3schools.com/cssref/css_selectors.asp">CSS Selectors</a></strong> are used for finding page elements.</li> <li>If you're new to CSS Selectors, games like <a href="http://flukeout.github.io/">CSS Diner</a> can help you learn.</li> <li>For more reading, <a href="https://developer.mozilla.org/en-US/docs/Web/CSS/Attribute_selectors">here's an advanced guide on CSS attribute selectors</a>.</li> </ul> <p><a id="common_methods"></a></p> <h3><img src="https://seleniumbase.github.io/img/logo7.png" title="SeleniumBase" width="32"> Here are some common SeleniumBase methods:</h3> <pre><code class="language-python">self.open(url) # Navigate the browser window to the URL. self.type(selector, text) # Update the field with the text. self.click(selector) # Click the element with the selector. self.click_link(link_text) # Click the link containing text. self.go_back() # Navigate back to the previous URL. self.select_option_by_text(dropdown_selector, option) self.hover_and_click(hover_selector, click_selector) self.drag_and_drop(drag_selector, drop_selector) self.get_text(selector) # Get the text from the element. self.get_current_url() # Get the URL of the current page. self.get_page_source() # Get the HTML of the current page. self.get_attribute(selector, attribute) # Get element attribute. self.get_title() # Get the title of the current page. self.switch_to_frame(frame) # Switch into the iframe container. self.switch_to_default_content() # Leave the iframe container. self.open_new_window() # Open a new window in the same browser. self.switch_to_window(window) # Switch to the browser window. self.switch_to_default_window() # Switch to the original window. self.get_new_driver(OPTIONS) # Open a new driver with OPTIONS. self.switch_to_driver(driver) # Switch to the browser driver. self.switch_to_default_driver() # Switch to the original driver. self.wait_for_element(selector) # Wait until element is visible. self.is_element_visible(selector) # Return element visibility. self.is_text_visible(text, selector) # Return text visibility. self.sleep(seconds) # Do nothing for the given amount of time. self.save_screenshot(name) # Save a screenshot in .png format. self.assert_element(selector) # Verify the element is visible. self.assert_text(text, selector) # Verify text in the element. self.assert_exact_text(text, selector) # Verify text is exact. self.assert_title(title) # Verify the title of the web page. self.assert_downloaded_file(file) # Verify file was downloaded. self.assert_no_404_errors() # Verify there are no broken links. self.assert_no_js_errors() # Verify there are no JS errors. </code></pre> <p>🔵 For the complete list of SeleniumBase methods, see: <b><a href="https://github.com/seleniumbase/SeleniumBase/raw/master/help_docs/method_summary.md">Method Summary</a></b></p> <p><a id="fun_facts"></a></p> <h2><img src="https://seleniumbase.github.io/img/logo7.png" title="SeleniumBase" width="32"> Fun Facts / Learn More:</h2> <p>✅ SeleniumBase automatically handles common <a href="https://www.selenium.dev/documentation/webdriver/" target="_blank">WebDriver</a> actions such as launching web browsers before tests, saving screenshots during failures, and closing web browsers after tests.</p> <p>✅ SeleniumBase lets you customize tests via <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/help_docs/customizing_test_runs.md">command-line options</a>.</p> <p>✅ SeleniumBase uses simple syntax for commands. Example:</p> <pre><code class="language-python">self.type("input", "dogs\n") # (The "\n" presses ENTER) </code></pre> <p>Most SeleniumBase scripts can be run with <code translate="no">pytest</code>, <code translate="no">pynose</code>, or pure <code translate="no">python</code>. Not all test runners can run all test formats. For example, tests that use the <code>sb</code> pytest fixture can only be run with <code>pytest</code>. (See <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/help_docs/syntax_formats.md">Syntax Formats</a>) There's also a <a href="https://behave.readthedocs.io/en/stable/gherkin.html#features" target="_blank">Gherkin</a> test format that runs with <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/examples/behave_bdd/ReadMe.md">behave</a>.</p> <pre><code class="language-bash">pytest coffee_cart_tests.py --rs pytest test_sb_fixture.py --demo pytest test_suite.py --rs --html=report.html --dashboard pynose basic_test.py --mobile pynose test_suite.py --headless --report --show-report python raw_sb.py python raw_test_scripts.py behave realworld.feature behave calculator.feature -D rs -D dashboard </code></pre> <p>✅ <code translate="no">pytest</code> includes automatic test discovery. If you don't specify a specific file or folder to run, <code translate="no">pytest</code> will automatically search through all subdirectories for tests to run based on the following criteria:</p> <ul> <li>Python files that start with <code>test_</code> or end with <code>_test.py</code>.</li> <li>Python methods that start with <code>test_</code>.</li> </ul> <p>With a SeleniumBase <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/examples/pytest.ini">pytest.ini</a> file present, you can modify default discovery settings. The Python class name can be anything because <code>seleniumbase.BaseCase</code> inherits <code>unittest.TestCase</code> to trigger autodiscovery.</p> <p>✅ You can do a pre-flight check to see which tests would get discovered by <code translate="no">pytest</code> before the actual run:</p> <pre><code class="language-bash">pytest --co -q </code></pre> <p>✅ You can be more specific when calling <code translate="no">pytest</code> or <code translate="no">pynose</code> on a file:</p> <pre><code class="language-bash">pytest [FILE_NAME.py]::[CLASS_NAME]::[METHOD_NAME] pynose [FILE_NAME.py]:[CLASS_NAME].[METHOD_NAME] </code></pre> <p>✅ No More Flaky Tests! SeleniumBase methods automatically wait for page elements to finish loading before interacting with them (<i>up to a timeout limit</i>). This means <b>you no longer need random <span><code translate="no">time.sleep()</code></span> statements</b> in your scripts.</p> <img src="https://img.shields.io/badge/Flaky%20Tests%3F-%20NO%21-11BBDD.svg?sanitize=true" alt="NO MORE FLAKY TESTS!"> <p>✅ SeleniumBase supports all major browsers and operating systems:</p> <p><b>Browsers:</b> Chrome, Edge, Firefox, and Safari.</p> <p><b>Systems:</b> Linux/Ubuntu, macOS, and Windows.</p> <p>✅ SeleniumBase works on all popular CI/CD platforms:</p> <p><a href="https://github.com/seleniumbase/SeleniumBase/raw/master/integrations/github/workflows/ReadMe.md"><img alt="GitHub Actions integration" src="https://img.shields.io/badge/GitHub_Actions-12B2C2.svg?logo=GitHubActions&amp;logoColor=CFFFC2"></a> <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/integrations/azure/jenkins/ReadMe.md"><img alt="Jenkins integration" src="https://img.shields.io/badge/Jenkins-32B242.svg?logo=jenkins&amp;logoColor=white"></a> <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/integrations/azure/azure_pipelines/ReadMe.md"><img alt="Azure integration" src="https://img.shields.io/badge/Azure-2288EE.svg?logo=AzurePipelines&amp;logoColor=white"></a> <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/integrations/google_cloud/ReadMe.md"><img alt="Google Cloud integration" src="https://img.shields.io/badge/Google_Cloud-11CAE8.svg?logo=GoogleCloud&amp;logoColor=EE0066"></a> <a href="https://raw.githubusercontent.com/seleniumbase/SeleniumBase/master/#utilizing_advanced_features"><img alt="AWS integration" src="https://img.shields.io/badge/AWS-4488DD.svg?logo=AmazonAWS&amp;logoColor=FFFF44"></a> <a href="https://en.wikipedia.org/wiki/Personal_computer" target="_blank"><img alt="Your Computer" src="https://img.shields.io/badge/%F0%9F%92%BB_Your_Computer-44E6E6.svg?sanitize=true"></a></p> <p>✅ SeleniumBase includes an automated/manual hybrid solution called <b><a href="https://github.com/seleniumbase/SeleniumBase/raw/master/examples/master_qa/ReadMe.md">MasterQA</a></b> to speed up manual testing with automation while manual testers handle validation.</p> <p>✅ SeleniumBase supports <a href="https://github.com/seleniumbase/SeleniumBase/tree/master/examples/offline_examples">running tests while offline</a> (<i>assuming webdrivers have previously been downloaded when online</i>).</p> <p>✅ For a full list of SeleniumBase features, <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/help_docs/features_list.md">Click Here</a>.</p> <p><a id="demo_mode_and_debugging"></a></p> <h2><img src="https://seleniumbase.github.io/img/logo7.png" title="SeleniumBase" width="32"> Demo Mode / Debugging:</h2> <p>🔵 <b>Demo Mode</b> helps you see what a test is doing. If a test is moving too fast for your eyes, run it in <b>Demo Mode</b> to pause the browser briefly between actions, highlight page elements being acted on, and display assertions:</p> <pre><code class="language-bash">pytest my_first_test.py --demo </code></pre> <p>🔵 <code>time.sleep(seconds)</code> can be used to make a test wait at a specific spot:</p> <pre><code class="language-python">import time; time.sleep(3) # Do nothing for 3 seconds. </code></pre> <p>🔵 <strong>Debug Mode</strong> with Python's built-in <strong><a href="https://docs.python.org/3/library/pdb.html">pdb</a></strong> library helps you debug tests:</p> <pre><code class="language-python">import pdb; pdb.set_trace() import pytest; pytest.set_trace() breakpoint() # Shortcut for "import pdb; pdb.set_trace()" </code></pre> <blockquote> <p>(<strong><code>pdb</code></strong> commands: <code>n</code>, <code>c</code>, <code>s</code>, <code>u</code>, <code>d</code> =&gt; <code>next</code>, <code>continue</code>, <code>step</code>, <code>up</code>, <code>down</code>)</p> </blockquote> <p>🔵 To pause an active test that throws an exception or error, (<em>and keep the browser window open while <strong>Debug Mode</strong> begins in the console</em>), add <strong><code>--pdb</code></strong> as a <code>pytest</code> option:</p> <pre><code class="language-bash">pytest test_fail.py --pdb </code></pre> <p>🔵 To start tests in Debug Mode, add <strong><code>--trace</code></strong> as a <code>pytest</code> option:</p> <pre><code class="language-bash">pytest test_coffee_cart.py --trace </code></pre> <p><a href="https://github.com/mdmintz/pdbp"><img src="https://seleniumbase.github.io/cdn/gif/coffee_pdbp.gif" alt="SeleniumBase test with the pdbp (Pdb+) debugger" title="SeleniumBase test with the pdbp (Pdb+) debugger"></a></p> <p><a id="command_line_options"></a></p> <h2>🔵 Command-line Options:</h2> <p><a id="pytest_options"></a> ✅ Here are some useful command-line options that come with <code translate="no">pytest</code>:</p> <pre><code class="language-bash">-v # Verbose mode. Prints the full name of each test and shows more details. -q # Quiet mode. Print fewer details in the console output when running tests. -x # Stop running the tests after the first failure is reached. --html=report.html # Creates a detailed pytest-html report after tests finish. --co | --collect-only # Show what tests would get run. (Without running them) --co -q # (Both options together!) - Do a dry run with full test names shown. -n=NUM # Multithread the tests using that many threads. (Speed up test runs!) -s # See print statements. (Should be on by default with pytest.ini present.) --junit-xml=report.xml # Creates a junit-xml report after tests finish. --pdb # If a test fails, enter Post Mortem Debug Mode. (Don't use with CI!) --trace # Enter Debug Mode at the beginning of each test. (Don't use with CI!) -m=MARKER # Run tests with the specified pytest marker. </code></pre> <p><a id="new_pytest_options"></a> ✅ SeleniumBase provides additional <code translate="no">pytest</code> command-line options for tests:</p> <pre><code class="language-bash">--browser=BROWSER # (The web browser to use. Default: "chrome".) --chrome # (Shortcut for "--browser=chrome". On by default.) --edge # (Shortcut for "--browser=edge".) --firefox # (Shortcut for "--browser=firefox".) --safari # (Shortcut for "--browser=safari".) --settings-file=FILE # (Override default SeleniumBase settings.) --env=ENV # (Set the test env. Access with "self.env" in tests.) --account=STR # (Set account. Access with "self.account" in tests.) --data=STRING # (Extra test data. Access with "self.data" in tests.) --var1=STRING # (Extra test data. Access with "self.var1" in tests.) --var2=STRING # (Extra test data. Access with "self.var2" in tests.) --var3=STRING # (Extra test data. Access with "self.var3" in tests.) --variables=DICT # (Extra test data. Access with "self.variables".) --user-data-dir=DIR # (Set the Chrome user data directory to use.) --protocol=PROTOCOL # (The Selenium Grid protocol: http|https.) --server=SERVER # (The Selenium Grid server/IP used for tests.) --port=PORT # (The Selenium Grid port used by the test server.) --cap-file=FILE # (The web browser's desired capabilities to use.) --cap-string=STRING # (The web browser's desired capabilities to use.) --proxy=SERVER:PORT # (Connect to a proxy server:port as tests are running) --proxy=USERNAME:PASSWORD@SERVER:PORT # (Use an authenticated proxy server) --proxy-bypass-list=STRING # (";"-separated hosts to bypass, Eg "*.foo.com") --proxy-pac-url=URL # (Connect to a proxy server using a PAC_URL.pac file.) --proxy-pac-url=USERNAME:PASSWORD@URL # (Authenticated proxy with PAC URL.) --proxy-driver # (If a driver download is needed, will use: --proxy=PROXY.) --multi-proxy # (Allow multiple authenticated proxies when multi-threaded.) --agent=STRING # (Modify the web browser's User-Agent string.) --mobile # (Use the mobile device emulator while running tests.) --metrics=STRING # (Set mobile metrics: "CSSWidth,CSSHeight,PixelRatio".) --chromium-arg="ARG=N,ARG2" # (Set Chromium args, ","-separated, no spaces.) --firefox-arg="ARG=N,ARG2" # (Set Firefox args, comma-separated, no spaces.) --firefox-pref=SET # (Set a Firefox preference:value set, comma-separated.) --extension-zip=ZIP # (Load a Chrome Extension .zip|.crx, comma-separated.) --extension-dir=DIR # (Load a Chrome Extension directory, comma-separated.) --disable-features="F1,F2" # (Disable features, comma-separated, no spaces.) --binary-location=PATH # (Set path of the Chromium browser binary to use.) --driver-version=VER # (Set the chromedriver or uc_driver version to use.) --sjw # (Skip JS Waits for readyState to be "complete" or Angular to load.) --wfa # (Wait for AngularJS to be done loading after specific web actions.) --pls=PLS # (Set pageLoadStrategy on Chrome: "normal", "eager", or "none".) --headless # (The default headless mode. Linux uses this mode by default.) --headless1 # (Use Chrome's old headless mode. Fast, but has limitations.) --headless2 # (Use Chrome's new headless mode, which supports extensions.) --headed # (Run tests in headed/GUI mode on Linux OS, where not default.) --xvfb # (Run tests using the Xvfb virtual display server on Linux OS.) --xvfb-metrics=STRING # (Set Xvfb display size on Linux: "Width,Height".) --locale=LOCALE_CODE # (Set the Language Locale Code for the web browser.) --interval=SECONDS # (The autoplay interval for presentations &amp; tour steps) --start-page=URL # (The starting URL for the web browser when tests begin.) --archive-logs # (Archive existing log files instead of deleting them.) --archive-downloads # (Archive old downloads instead of deleting them.) --time-limit=SECONDS # (Safely fail any test that exceeds the time limit.) --slow # (Slow down the automation. Faster than using Demo Mode.) --demo # (Slow down and visually see test actions as they occur.) --demo-sleep=SECONDS # (Set the wait time after Slow &amp; Demo Mode actions.) --highlights=NUM # (Number of highlight animations for Demo Mode actions.) --message-duration=SECONDS # (The time length for Messenger alerts.) --check-js # (Check for JavaScript errors after page loads.) --ad-block # (Block some types of display ads from loading.) --host-resolver-rules=RULES # (Set host-resolver-rules, comma-separated.) --block-images # (Block images from loading during tests.) --do-not-track # (Indicate to websites that you don't want to be tracked.) --verify-delay=SECONDS # (The delay before MasterQA verification checks.) --ee | --esc-end # (Lets the user end the current test via the ESC key.) --recorder # (Enables the Recorder for turning browser actions into code.) --rec-behave # (Same as Recorder Mode, but also generates behave-gherkin.) --rec-sleep # (If the Recorder is enabled, also records self.sleep calls.) --rec-print # (If the Recorder is enabled, prints output after tests end.) --disable-cookies # (Disable Cookies on websites. Pages might break!) --disable-js # (Disable JavaScript on websites. Pages might break!) --disable-csp # (Disable the Content Security Policy of websites.) --disable-ws # (Disable Web Security on Chromium-based browsers.) --enable-ws # (Enable Web Security on Chromium-based browsers.) --enable-sync # (Enable "Chrome Sync" on websites.) --uc | --undetected # (Use undetected-chromedriver to evade bot-detection.) --uc-cdp-events # (Capture CDP events when running in "--undetected" mode.) --log-cdp # ("goog:loggingPrefs", {"performance": "ALL", "browser": "ALL"}) --remote-debug # (Sync to Chrome Remote Debugger chrome://inspect/#devices) --ftrace | --final-trace # (Debug Mode after each test. Don't use with CI!) --dashboard # (Enable the SeleniumBase Dashboard. Saved at: dashboard.html) --dash-title=STRING # (Set the title shown for the generated dashboard.) --enable-3d-apis # (Enables WebGL and 3D APIs.) --swiftshader # (Chrome "--use-gl=angle" / "--use-angle=swiftshader-webgl") --incognito # (Enable Chrome's Incognito mode.) --guest # (Enable Chrome's Guest mode.) --dark # (Enable Chrome's Dark mode.) --devtools # (Open Chrome's DevTools when the browser opens.) --rs | --reuse-session # (Reuse browser session for all tests.) --rcs | --reuse-class-session # (Reuse session for tests in class.) --crumbs # (Delete all cookies between tests reusing a session.) --disable-beforeunload # (Disable the "beforeunload" event on Chrome.) --window-position=X,Y # (Set the browser's starting window position.) --window-size=WIDTH,HEIGHT # (Set the browser's starting window size.) --maximize # (Start tests with the browser window maximized.) --screenshot # (Save a screenshot at the end of each test.) --no-screenshot # (No screenshots saved unless tests directly ask it.) --visual-baseline # (Set the visual baseline for Visual/Layout tests.) --wire # (Use selenium-wire's webdriver for replacing selenium webdriver.) --external-pdf # (Set Chromium "plugins.always_open_pdf_externally":True.) --timeout-multiplier=MULTIPLIER # (Multiplies the default timeout values.) --list-fail-page # (After each failing test, list the URL of the failure.) </code></pre> <p>(See the full list of command-line option definitions <strong><a href="https://github.com/seleniumbase/SeleniumBase/raw/master/seleniumbase/plugins/pytest_plugin.py">here</a></strong>. For detailed examples of command-line options, see <strong><a href="https://github.com/seleniumbase/SeleniumBase/raw/master/help_docs/customizing_test_runs.md">customizing_test_runs.md</a></strong>)</p> <hr> <p>🔵 During test failures, logs and screenshots from the most recent test run will get saved to the <code>latest_logs/</code> folder. Those logs will get moved to <code>archived_logs/</code> if you add --archive_logs to command-line options, or have <code>ARCHIVE_EXISTING_LOGS</code> set to True in <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/seleniumbase/config/settings.py">settings.py</a>, otherwise log files with be cleaned up at the start of the next test run. The <code>test_suite.py</code> collection contains tests that fail on purpose so that you can see how logging works.</p> <pre><code class="language-bash">cd examples/ pytest test_suite.py --chrome pytest test_suite.py --firefox </code></pre> <p>An easy way to override seleniumbase/config/settings.py is by using a custom settings file. Here's the command-line option to add to tests: (See <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/examples/custom_settings.py">examples/custom_settings.py</a>) <code>--settings_file=custom_settings.py</code> (Settings include default timeout values, a two-factor auth key, DB credentials, S3 credentials, and other important settings used by tests.)</p> <p>🔵 To pass additional data from the command-line to tests, add <code>--data="ANY STRING"</code>. Inside your tests, you can use <code>self.data</code> to access that.</p> <p><a id="directory_configuration"></a></p> <h2><img src="https://seleniumbase.github.io/img/logo7.png" title="SeleniumBase" width="32"> Directory Configuration:</h2> <p>🔵 When running tests with <strong><code>pytest</code></strong>, you'll want a copy of <strong><a href="https://github.com/seleniumbase/SeleniumBase/raw/master/pytest.ini">pytest.ini</a></strong> in your root folders. When running tests with <strong><code>pynose</code></strong>, you'll want a copy of <strong><a href="https://github.com/seleniumbase/SeleniumBase/raw/master/setup.cfg">setup.cfg</a></strong> in your root folders. These files specify default configuration details for tests. Test folders should also include a blank <strong><a href="https://github.com/seleniumbase/SeleniumBase/raw/master/examples/offline_examples/__init__.py"><strong>init</strong>.py</a></strong> file to allow your test files to import other files from that folder.</p> <p>🔵 <code>sbase mkdir DIR</code> creates a folder with config files and sample tests:</p> <pre><code class="language-bash">sbase mkdir ui_tests </code></pre> <blockquote> <p>That new folder will have these files:</p> </blockquote> <pre><code class="language-bash">ui_tests/ ├── __init__.py ├── my_first_test.py ├── parameterized_test.py ├── pytest.ini ├── requirements.txt ├── setup.cfg ├── test_demo_site.py └── boilerplates/ ├── __init__.py ├── base_test_case.py ├── boilerplate_test.py ├── classic_obj_test.py ├── page_objects.py ├── sb_fixture_test.py └── samples/ ├── __init__.py ├── google_objects.py ├── google_test.py ├── sb_swag_test.py └── swag_labs_test.py </code></pre> <p><b>ProTip™:</b> You can also create a boilerplate folder without any sample tests in it by adding <code>-b</code> or <code>--basic</code> to the <code>sbase mkdir</code> command:</p> <pre><code class="language-bash">sbase mkdir ui_tests --basic </code></pre> <blockquote> <p>That new folder will have these files:</p> </blockquote> <pre><code class="language-bash">ui_tests/ ├── __init__.py ├── pytest.ini ├── requirements.txt └── setup.cfg </code></pre> <p>Of those files, the <code>pytest.ini</code> config file is the most important, followed by a blank <code>__init__.py</code> file. There's also a <code>setup.cfg</code> file (for pynose). Finally, the <code>requirements.txt</code> file can be used to help you install seleniumbase into your environments (if it's not already installed).</p> <hr> <h3><img src="https://seleniumbase.github.io/img/logo7.png" title="SeleniumBase" width="32"> Log files from failed tests:</h3> <p>Let's try an example of a test that fails:</p> <pre><code class="language-python">""" test_fail.py """ from seleniumbase import BaseCase BaseCase.main(__name__, __file__) class MyTestClass(BaseCase): def test_find_army_of_robots_on_xkcd_desert_island(self): self.open("https://xkcd.com/731/") self.assert_element("div#ARMY_OF_ROBOTS", timeout=1) # This should fail </code></pre> <p>You can run it from the <code>examples/</code> folder like this:</p> <pre><code class="language-bash">pytest test_fail.py </code></pre> <p>🔵 You'll notice that a logs folder, <code>./latest_logs/</code>, was created to hold information (and screenshots) about the failing test. During test runs, past results get moved to the archived_logs folder if you have ARCHIVE_EXISTING_LOGS set to True in <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/seleniumbase/config/settings.py">settings.py</a>, or if your run tests with <code>--archive-logs</code>. If you choose not to archive existing logs, they will be deleted and replaced by the logs of the latest test run.</p> <hr> <p><a id="seleniumbase_dashboard"></a></p> <h2><img src="https://seleniumbase.github.io/img/logo7.png" title="SeleniumBase" width="32"> SeleniumBase Dashboard:</h2> <p>🔵 The <code>--dashboard</code> option for pytest generates a SeleniumBase Dashboard located at <code>dashboard.html</code>, which updates automatically as tests run and produce results. Example:</p> <pre><code class="language-bash">pytest --dashboard --rs --headless </code></pre> <img src="https://seleniumbase.github.io/cdn/img/dashboard_1.png" alt="The SeleniumBase Dashboard" title="The SeleniumBase Dashboard" width="380"> <p>🔵 Additionally, you can host your own SeleniumBase Dashboard Server on a port of your choice. Here's an example of that using Python's <code>http.server</code>:</p> <pre><code class="language-bash">python -m http.server 1948 </code></pre> <p>🔵 Now you can navigate to <code>http://localhost:1948/dashboard.html</code> in order to view the dashboard as a web app. This requires two different terminal windows: one for running the server, and another for running the tests, which should be run from the same directory. (Use <kbd>Ctrl+C</kbd> to stop the http server.)</p> <p>🔵 Here's a full example of what the SeleniumBase Dashboard may look like:</p> <pre><code class="language-bash">pytest test_suite.py test_image_saving.py --dashboard --rs --headless </code></pre> <img src="https://seleniumbase.github.io/cdn/img/dashboard_2.png" alt="The SeleniumBase Dashboard" title="The SeleniumBase Dashboard" width="520"> <hr> <p><a id="creating_visual_reports"></a></p> <h2><img src="https://seleniumbase.github.io/img/logo7.png" title="SeleniumBase" width="32"> Generating Test Reports:</h2> <h3>🔵 <code>pytest</code> HTML Reports:</h3> <p>✅ Using <code>--html=report.html</code> gives you a fancy report of the name specified after your test suite completes.</p> <pre><code class="language-bash">pytest test_suite.py --html=report.html </code></pre> <img src="https://seleniumbase.github.io/cdn/img/html_report.png" alt="Example Pytest Report" title="Example Pytest Report" width="520"> <p>✅ When combining pytest html reports with SeleniumBase Dashboard usage, the pie chart from the Dashboard will get added to the html report. Additionally, if you set the html report URL to be the same as the Dashboard URL when also using the dashboard, (example: <code>--dashboard --html=dashboard.html</code>), then the Dashboard will become an advanced html report when all the tests complete.</p> <p>✅ Here's an example of an upgraded html report:</p> <pre><code class="language-bash">pytest test_suite.py --dashboard --html=report.html </code></pre> <img src="https://seleniumbase.github.io/cdn/img/dash_report.jpg" alt="Dashboard Pytest HTML Report" title="Dashboard Pytest HTML Report" width="520"> <p>If viewing pytest html reports in <a href="https://www.jenkins.io/">Jenkins</a>, you may need to <a href="https://stackoverflow.com/a/46197356/7058266">configure Jenkins settings</a> for the html to render correctly. This is due to <a href="https://www.jenkins.io/doc/book/system-administration/security/configuring-content-security-policy/">Jenkins CSP changes</a>.</p> <p>You can also use <code>--junit-xml=report.xml</code> to get an xml report instead. Jenkins can use this file to display better reporting for your tests.</p> <pre><code class="language-bash">pytest test_suite.py --junit-xml=report.xml </code></pre> <h3>🔵 <code>pynose</code> Reports:</h3> <p>The <code>--report</code> option gives you a fancy report after your test suite completes.</p> <pre><code class="language-bash">pynose test_suite.py --report </code></pre> <img src="https://seleniumbase.github.io/cdn/img/nose_report.png" alt="Example pynose Report" title="Example pynose Report" width="320"> <p>(NOTE: You can add <code>--show-report</code> to immediately display pynose reports after the test suite completes. Only use <code>--show-report</code> when running tests locally because it pauses the test run.)</p> <h3>🔵 <code>behave</code> Dashboard &amp; Reports:</h3> <p>(The <a href="https://github.com/seleniumbase/SeleniumBase/tree/master/examples/behave_bdd">behave_bdd/</a> folder can be found in the <a href="https://github.com/seleniumbase/SeleniumBase/tree/master/examples">examples/</a> folder.)</p> <pre><code class="language-bash">behave behave_bdd/features/ -D dashboard -D headless </code></pre> <img src="https://seleniumbase.github.io/cdn/img/sb_behave_dashboard.png" title="SeleniumBase" width="520"> <p>You can also use <code>--junit</code> to get <code>.xml</code> reports for each <code translate="no">behave</code> feature. Jenkins can use these files to display better reporting for your tests.</p> <pre><code class="language-bash">behave behave_bdd/features/ --junit -D rs -D headless </code></pre> <h3>🔵 Allure Reports:</h3> <p>See: <a href="https://allurereport.org/docs/pytest/">https://allurereport.org/docs/pytest/</a></p> <p>SeleniumBase no longer includes <code>allure-pytest</code> as part of installed dependencies. If you want to use it, install it first:</p> <pre><code class="language-bash">pip install allure-pytest </code></pre> <p>Now your tests can create Allure results files, which can be processed by Allure Reports.</p> <pre><code class="language-bash">pytest test_suite.py --alluredir=allure_results </code></pre> <hr> <h3><img src="https://seleniumbase.github.io/img/logo7.png" title="SeleniumBase" width="32"> Using a Proxy Server:</h3> <p>If you wish to use a proxy server for your browser tests (Chromium or Firefox), you can add <code>--proxy=IP_ADDRESS:PORT</code> as an argument on the command line.</p> <pre><code class="language-bash">pytest proxy_test.py --proxy=IP_ADDRESS:PORT </code></pre> <p>If the proxy server that you wish to use requires authentication, you can do the following (Chromium only):</p> <pre><code class="language-bash">pytest proxy_test.py --proxy=USERNAME:PASSWORD@IP_ADDRESS:PORT </code></pre> <p>SeleniumBase also supports SOCKS4 and SOCKS5 proxies:</p> <pre><code class="language-bash">pytest proxy_test.py --proxy="socks4://IP_ADDRESS:PORT" pytest proxy_test.py --proxy="socks5://IP_ADDRESS:PORT" </code></pre> <p>To make things easier, you can add your frequently-used proxies to PROXY_LIST in <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/seleniumbase/config/proxy_list.py">proxy_list.py</a>, and then use <code>--proxy=KEY_FROM_PROXY_LIST</code> to use the IP_ADDRESS:PORT of that key.</p> <pre><code class="language-bash">pytest proxy_test.py --proxy=proxy1 </code></pre> <h3><img src="https://seleniumbase.github.io/img/logo7.png" title="SeleniumBase" width="32"> Changing the User-Agent:</h3> <p>🔵 If you wish to change the User-Agent for your browser tests (Chromium and Firefox only), you can add <code>--agent="USER AGENT STRING"</code> as an argument on the command-line.</p> <pre><code class="language-bash">pytest user_agent_test.py --agent="Mozilla/5.0 (Nintendo 3DS; U; ; en) Version/1.7412.EU" </code></pre> <h3><img src="https://seleniumbase.github.io/img/logo7.png" title="SeleniumBase" width="32"> Handling Pop-Up Alerts:</h3> <p>🔵 <code translate="no">self.accept_alert()</code> automatically waits for and accepts alert pop-ups. <code translate="no">self.dismiss_alert()</code> automatically waits for and dismisses alert pop-ups. On occasion, some methods like <code translate="no">self.click(SELECTOR)</code> might dismiss a pop-up on its own because they call JavaScript to make sure that the <code translate="no">readyState</code> of the page is <code translate="no">complete</code> before advancing. If you're trying to accept a pop-up that got dismissed this way, use this workaround: Call <code translate="no">self.find_element(SELECTOR).click()</code> instead, (which will let the pop-up remain on the screen), and then use <code translate="no">self.accept_alert()</code> to accept the pop-up (<a href="https://github.com/seleniumbase/SeleniumBase/issues/600#issuecomment-647270426">more on that here</a>). If pop-ups are intermittent, wrap code in a try/except block.</p> <h3><img src="https://seleniumbase.github.io/img/logo7.png" title="SeleniumBase" width="32"> Building Guided Tours for Websites:</h3> <p>🔵 Learn about <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/examples/tour_examples/ReadMe.md">SeleniumBase Interactive Walkthroughs</a> (in the <code>examples/tour_examples/</code> folder). It's great for prototyping a website onboarding experience.</p> <p><a id="utilizing_advanced_features"></a></p> <hr> <div></div> <h3><img src="https://seleniumbase.github.io/img/logo7.png" title="SeleniumBase" width="32"> Production Environments &amp; Integrations:</h3> <div></div> <details> <summary> ▶️ Here are some things you can do to set up a production environment for your testing. (<b>click to expand</b>)</summary> <ul> <li>You can set up a <a href="https://jenkins.io/" target="_blank">Jenkins</a> build server for running tests at regular intervals. For a real-world Jenkins example of headless browser automation in action, check out the <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/integrations/azure/jenkins/ReadMe.md">SeleniumBase Jenkins example on Azure</a> or the <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/integrations/google_cloud/ReadMe.md">SeleniumBase Jenkins example on Google Cloud</a>.</li> <li>You can use <a href="https://selenium.dev/documentation/en/grid/" target="_blank">the Selenium Grid</a> to scale your testing by distributing tests on several machines with parallel execution. To do this, check out the <a href="https://github.com/seleniumbase/SeleniumBase/tree/master/seleniumbase/utilities/selenium_grid">SeleniumBase selenium_grid folder</a>, which should have everything you need, including the <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/seleniumbase/utilities/selenium_grid/ReadMe.md">Selenium Grid ReadMe</a> to help you get started.</li> <li>If you're using the <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/help_docs/mysql_installation.md">SeleniumBase MySQL feature</a> to save results from tests running on a server machine, you can install <a href="https://dev.mysql.com/downloads/tools/workbench/">MySQL Workbench</a> to help you read &amp; write from your DB more easily.</li> <li>If you're using AWS, you can set up an <a href="https://aws.amazon.com/s3/" target="_blank">Amazon S3</a> account for saving log files and screenshots from your tests. To activate this feature, modify <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/seleniumbase/config/settings.py">settings.py</a> with connection details in the S3 section, and add <code translate="no">--with-s3-logging</code> on the command-line when running your tests.</li> </ul> <p>Here's an example of running tests with some additional features enabled:</p> <pre><code class="language-bash">pytest [YOUR_TEST_FILE.py] --with-db-reporting --with-s3-logging </code></pre> </details> <p><a id="detailed_method_specifications"></a></p> <h3><img src="https://seleniumbase.github.io/img/logo7.png" title="SeleniumBase" width="32"> Detailed Method Specifications and Examples:</h3> <p>🔵 <strong>Navigating to a web page: (and related commands)</strong></p> <pre><code class="language-python">self.open("https://xkcd.com/378/") # This method opens the specified page. self.go_back() # This method navigates the browser to the previous page. self.go_forward() # This method navigates the browser forward in history. self.refresh_page() # This method reloads the current page. self.get_current_url() # This method returns the current page URL. self.get_page_source() # This method returns the current page source. </code></pre> <p><b>ProTip™:</b> You can use the <code translate="no">self.get_page_source()</code> method with Python's <code translate="no">find()</code> command to parse through HTML to find something specific. (For more advanced parsing, see the <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/examples/test_parse_soup.py">BeautifulSoup example</a>.)</p> <pre><code class="language-python">source = self.get_page_source() head_open_tag = source.find('&lt;head&gt;') head_close_tag = source.find('&lt;/head&gt;', head_open_tag) everything_inside_head = source[head_open_tag+len('&lt;head&gt;'):head_close_tag] </code></pre> <p>🔵 <strong>Clicking:</strong></p> <p>To click an element on the page:</p> <pre><code class="language-python">self.click("div#my_id") </code></pre> <p><strong>ProTip™:</strong> In most web browsers, you can right-click on a page and select <code>Inspect Element</code> to see the CSS selector details that you'll need to create your own scripts.</p> <p>🔵 <strong>Typing Text:</strong></p> <p><code translate="no">self.type(selector, text)</code> # updates the text from the specified element with the specified value. An exception is raised if the element is missing or if the text field is not editable. Example:</p> <pre><code class="language-python">self.type("input#id_value", "2012") </code></pre> <p>You can also use <code translate="no">self.add_text()</code> or the <a href="https://www.selenium.dev/documentation/webdriver/" target="_blank">WebDriver</a> <code translate="no">.send_keys()</code> command, but those won't clear the text box first if there's already text inside.</p> <p>🔵 <strong>Getting the text from an element on a page:</strong></p> <pre><code class="language-python">text = self.get_text("header h2") </code></pre> <p>🔵 <strong>Getting the attribute value from an element on a page:</strong></p> <pre><code class="language-python">attribute = self.get_attribute("#comic img", "title") </code></pre> <p>🔵 <strong>Asserting existence of an element on a page within some number of seconds:</strong></p> <pre><code class="language-python">self.wait_for_element_present("div.my_class", timeout=10) </code></pre> <p>(NOTE: You can also use: <code>self.assert_element_present(ELEMENT)</code>)</p> <p>🔵 <strong>Asserting visibility of an element on a page within some number of seconds:</strong></p> <pre><code class="language-python">self.wait_for_element_visible("a.my_class", timeout=5) </code></pre> <p>(NOTE: The short versions of that are <code>self.find_element(ELEMENT)</code> and <code>self.assert_element(ELEMENT)</code>. The <code>find_element()</code> version returns the element.)</p> <p>Since the line above returns the element, you can combine that with <code>.click()</code> as shown below:</p> <pre><code class="language-python">self.find_element("a.my_class", timeout=5).click() # But you're better off using the following statement, which does the same thing: self.click("a.my_class") # DO IT THIS WAY! </code></pre> <p><strong>ProTip™:</strong> You can use dots to signify class names (Ex: <code>div.class_name</code>) as a simplified version of <code>div[class="class_name"]</code> within a CSS selector.</p> <p>You can also use <code>*=</code> to search for any partial value in a CSS selector as shown below:</p> <pre><code class="language-python">self.click('a[name*="partial_name"]') </code></pre> <p>🔵 <strong>Asserting visibility of text inside an element on a page within some number of seconds:</strong></p> <pre><code class="language-python">self.assert_text("Make it so!", "div#trek div.picard div.quotes") self.assert_text("Tea. Earl Grey. Hot.", "div#trek div.picard div.quotes", timeout=3) </code></pre> <p>(NOTE: <code>self.find_text(TEXT, ELEMENT)</code> and <code>self.wait_for_text(TEXT, ELEMENT)</code> also do this. For backwards compatibility, older method names were kept, but the default timeout may be different.)</p> <p>🔵 <strong>Asserting Anything:</strong></p> <pre><code class="language-python">self.assert_true(var1 == var2) self.assert_false(var1 == var2) self.assert_equal(var1, var2) </code></pre> <p>🔵 <strong>Useful Conditional Statements: (with creative examples)</strong></p> <p>❓ <code>is_element_visible(selector):</code> (visible on the page)</p> <pre><code class="language-python">if self.is_element_visible('div#warning'): print("Red Alert: Something bad might be happening!") </code></pre> <p>❓ <code>is_element_present(selector):</code> (present in the HTML)</p> <pre><code class="language-python">if self.is_element_present('div#top_secret img.tracking_cookie'): self.contact_cookie_monster() # Not a real SeleniumBase method else: current_url = self.get_current_url() self.contact_the_nsa(url=current_url, message="Dark Zone Found") # Not a real SeleniumBase method </code></pre> <pre><code class="language-python">def is_there_a_cloaked_klingon_ship_on_this_page(): if self.is_element_present("div.ships div.klingon"): return not self.is_element_visible("div.ships div.klingon") return False </code></pre> <p>❓ <code>is_text_visible(text, selector):</code> (text visible on element)</p> <pre><code class="language-python">if self.is_text_visible("You Shall Not Pass!", "h1"): self.open("https://www.youtube.com/watch?v=3xYXUeSmb-Y") </code></pre> <div></div> <details> <summary> ▶️ Click for a longer example of <code translate="no">is_text_visible():</code></summary> <pre><code class="language-python">def get_mirror_universe_captain_picard_superbowl_ad(superbowl_year): selector = "div.superbowl_%s div.commercials div.transcript div.picard" % superbowl_year if self.is_text_visible("Yes, it was I who summoned you all here.", selector): return "Picard Paramount+ Superbowl Ad 2020" elif self.is_text_visible("Commander, signal the following: Our Network is Secure!"): return "Picard Mirror Universe iboss Superbowl Ad 2018" elif self.is_text_visible("For the Love of Marketing and Earl Grey Tea!", selector): return "Picard Mirror Universe HubSpot Superbowl Ad 2015" elif self.is_text_visible("Delivery Drones... Engage", selector): return "Picard Mirror Universe Amazon Superbowl Ad 2015" elif self.is_text_visible("Bing it on Screen!", selector): return "Picard Mirror Universe Microsoft Superbowl Ad 2015" elif self.is_text_visible("OK Glass, Make it So!", selector): return "Picard Mirror Universe Google Superbowl Ad 2015" elif self.is_text_visible("Number One, I've Never Seen Anything Like It.", selector): return "Picard Mirror Universe Tesla Superbowl Ad 2015" elif self.is_text_visible("Let us make sure history never forgets the name ... Facebook", selector): return "Picard Mirror Universe Facebook Superbowl Ad 2015" elif self.is_text_visible("""With the first link, the chain is forged. The first speech censored, the first thought forbidden, the first freedom denied, chains us all irrevocably.""", selector): return "Picard Mirror Universe Wikimedia Superbowl Ad 2015" else: raise Exception("Reports of my assimilation are greatly exaggerated.") </code></pre> </details> <p>❓ <code>is_link_text_visible(link_text):</code></p> <pre><code class="language-python">if self.is_link_text_visible("Stop! Hammer time!"): self.click_link("Stop! Hammer time!") </code></pre> <h3>🔵 Switching Tabs:</h3> <p>If your test opens up a new tab/window, you can switch to it. (SeleniumBase automatically switches to new tabs that don't open to <code translate="no">about:blank</code> URLs.)</p> <pre><code class="language-python">self.switch_to_window(1) # This switches to the new tab (0 is the first one) </code></pre> <h3>🔵 How to handle iframes:</h3> <p>🔵 <b>iframes</b> follow the same principle as new windows: You must first switch to the iframe if you want to perform actions in there:</p> <pre><code class="language-python">self.switch_to_frame("iframe") # ... Now perform actions inside the iframe self.switch_to_parent_frame() # Exit the current iframe </code></pre> <p>To exit from multiple iframes, use <code>self.switch_to_default_content()</code>. (If inside a single iframe, this has the same effect as <code>self.switch_to_parent_frame()</code>.)</p> <pre><code class="language-python">self.switch_to_frame('iframe[name="frame1"]') self.switch_to_frame('iframe[name="frame2"]') # ... Now perform actions inside the inner iframe self.switch_to_default_content() # Back to the main page </code></pre> <p>🔵 You can also use a context manager to act inside iframes:</p> <pre><code class="language-python">with self.frame_switch("iframe"): # ... Now perform actions while inside the code block # You have left the iframe </code></pre> <p>This also works with nested iframes:</p> <pre><code class="language-python">with self.frame_switch('iframe[name="frame1"]'): with self.frame_switch('iframe[name="frame2"]'): # ... Now perform actions while inside the code block # You are now back inside the first iframe # You have left all the iframes </code></pre> <h3>🔵 How to execute custom jQuery scripts:</h3> <p>jQuery is a powerful JavaScript library that allows you to perform advanced actions in a web browser. If the web page you're on already has jQuery loaded, you can start executing jQuery scripts immediately. You'd know this because the web page would contain something like the following in the HTML:</p> <pre><code class="language-html">&lt;script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.3/jquery.min.js"&gt;&lt;/script&gt; </code></pre> <p>🔵 It's OK if you want to use jQuery on a page that doesn't have it loaded yet. To do so, run the following command first:</p> <pre><code class="language-python">self.activate_jquery() </code></pre> <div></div> <details> <summary> ▶️ Here are some examples of using jQuery in your scripts. (<b>click to expand</b>)</summary> <pre><code class="language-python">self.execute_script("jQuery, window.scrollTo(0, 600)") # Scrolling the page self.execute_script("jQuery('#annoying-widget').hide()") # Hiding elements on a page self.execute_script("jQuery('#hidden-widget').show(0)") # Showing hidden elements on a page self.execute_script("jQuery('#annoying-button a').remove()") # Removing elements on a page self.execute_script("jQuery('%s').mouseover()" % (mouse_over_item)) # Mouse-over elements on a page self.execute_script("jQuery('input#the_id').val('my_text')") # Fast text input on a page self.execute_script("jQuery('div#dropdown a.link').click()") # Click elements on a page self.execute_script("return jQuery('div#amazing')[0].text") # Returns the css "text" of the element given self.execute_script("return jQuery('textarea')[2].value") # Returns the css "value" of the 3rd textarea element on the page </code></pre> <p>(Most of the above commands can be done directly with built-in SeleniumBase methods.)</p> </details> <h3>🔵 How to handle a restrictive CSP:</h3> <p>❗ Some websites have a restrictive <a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP">Content Security Policy</a> to prevent users from loading jQuery and other external libraries onto their websites. If you need to use jQuery or another JS library on those websites, add <code>--disable-csp</code> as a <code>pytest</code> command-line option to load a Chromium extension that bypasses the CSP.</p> <h3>🔵 More JavaScript fun:</h3> <div></div> <details> <summary> ▶️ In this example, JavaScript creates a referral button on a page, which is then clicked. (<b>click to expand</b>)</summary> <pre><code class="language-python">start_page = "https://xkcd.com/465/" destination_page = "https://github.com/seleniumbase/SeleniumBase" self.open(start_page) referral_link = '''&lt;a class='analytics test' href='%s'&gt;Free-Referral Button!&lt;/a&gt;''' % destination_page self.execute_script('''document.body.innerHTML = \"%s\"''' % referral_link) self.click("a.analytics") # Clicks the generated button </code></pre> <p>(Due to popular demand, this traffic generation example has been included in SeleniumBase with the <code translate="no">self.generate_referral(start_page, end_page)</code> and the <code translate="no">self.generate_traffic(start_page, end_page, loops)</code> methods.)</p> </details> <h3>🔵 How to use deferred asserts:</h3> <p>Let's say you want to verify multiple different elements on a web page in a single test, but you don't want the test to fail until you verified several elements at once so that you don't have to rerun the test to find more missing elements on the same page. That's where deferred asserts come in. Here's an example:</p> <pre><code class="language-python">from seleniumbase import BaseCase BaseCase.main(__name__, __file__) class DeferredAssertTests(BaseCase): def test_deferred_asserts(self): self.open("https://xkcd.com/993/") self.wait_for_element("#comic") self.deferred_assert_element('img[alt="Brand Identity"]') self.deferred_assert_element('img[alt="Rocket Ship"]') # Will Fail self.deferred_assert_element("#comicmap") self.deferred_assert_text("Fake Item", "ul.comicNav") # Will Fail self.deferred_assert_text("Random", "ul.comicNav") self.deferred_assert_element('a[name="Super Fake !!!"]') # Will Fail self.deferred_assert_exact_text("Brand Identity", "#ctitle") self.deferred_assert_exact_text("Fake Food", "#comic") # Will Fail self.process_deferred_asserts() </code></pre> <p><code translate="no">deferred_assert_element()</code> and <code translate="no">deferred_assert_text()</code> will save any exceptions that would be raised. To flush out all the failed deferred asserts into a single exception, make sure to call <code translate="no">self.process_deferred_asserts()</code> at the end of your test method. If your test hits multiple pages, you can call <code translate="no">self.process_deferred_asserts()</code> before navigating to a new page so that the screenshot from your log files matches the URL where the deferred asserts were made.</p> <h3>🔵 How to access raw <a href="https://www.selenium.dev/documentation/webdriver/" target="_blank">WebDriver</a>:</h3> <p>If you need access to any commands that come with standard <a href="https://www.selenium.dev/documentation/webdriver/" target="_blank">WebDriver</a>, you can call them directly like this:</p> <pre><code class="language-python">self.driver.delete_all_cookies() capabilities = self.driver.capabilities self.driver.find_elements("partial link text", "GitHub") </code></pre> <p>(In general, you'll want to use the SeleniumBase versions of methods when available.)</p> <h3>🔵 How to retry failing tests automatically:</h3> <p>You can use <code translate="no">pytest --reruns=NUM</code> to retry failing tests that many times. Add <code translate="no">--reruns-delay=SECONDS</code> to wait that many seconds between retries. Example:</p> <pre><code class="language-bash">pytest --reruns=1 --reruns-delay=1 </code></pre> <p>You can use the <code translate="no">@retry_on_exception()</code> decorator to retry failing methods. (First import: <code translate="no">from seleniumbase import decorators</code>). To learn more about SeleniumBase decorators, <a href="https://github.com/seleniumbase/SeleniumBase/tree/master/seleniumbase/common">click here</a>.</p> <hr> <blockquote> <p>"Catch bugs in QA before deploying code to Production!"</p> </blockquote> <p align="left"><a href="https://seleniumbase.io/error_page" target="_blank"><img src="https://seleniumbase.github.io/cdn/gif/error_page.gif" alt="Catch bugs in QA before deploying code to Production!" title="Catch bugs in QA before deploying code to Production!"></a></p> <hr> <h3><img src="https://seleniumbase.github.io/img/logo7.png" title="SeleniumBase" width="32"> Wrap-Up</h3> <p> </p> <div> <b>If you see something, say something!</b> </div> <div> <a href="https://github.com/seleniumbase/SeleniumBase/issues?q=is%3Aissue+is%3Aclosed"><img src="https://img.shields.io/github/issues-closed-raw/seleniumbase/SeleniumBase.svg?color=22BB88" title="Closed Issues"></a> <a href="https://github.com/seleniumbase/SeleniumBase/pulls?q=is%3Apr+is%3Aclosed"><img src="https://img.shields.io/github/issues-pr-closed/seleniumbase/SeleniumBase.svg?logo=github&amp;logoColor=white&amp;color=22BB99" title="Closed Pull Requests"></a> </div> <p></p> <p align="left"><a href="https://github.com/seleniumbase/SeleniumBase/"><img src="https://seleniumbase.github.io/cdn/img/sb_logo_10t.png" alt="SeleniumBase" title="SeleniumBase" width="274"></a></p> <p><a href="https://pypi.org/project/seleniumbase/" target="_blank"><img src="https://img.shields.io/pypi/pyversions/seleniumbase.svg?color=22AAEE&amp;logo=python&amp;logoColor=FEDC54" title="Supported Python Versions"></a></p> <p></p> <div> <span><a href="https://www.youtube.com/playlist?list=PLp9uKicxkBc5UIlGi2BuE3aWC7JyXpD3m"><img src="https://seleniumbase.github.io/cdn/img/youtube.png" title="SeleniumBase Playlist on YouTube" alt="SeleniumBase Playlist on YouTube" width="70"></a></span> <span><a href="https://github.com/seleniumbase/SeleniumBase"><img src="https://seleniumbase.github.io/img/social/share_github.svg?sanitize=true" title="SeleniumBase on GitHub" alt="SeleniumBase on GitHub" width="64"></a></span> <span><a href="https://discord.gg/EdhQTn3EyE"><img src="https://seleniumbase.github.io/other/discord_icon.png" title="SeleniumBase on Discord" alt="SeleniumBase on Discord" width="66"></a></span> <span><a href="https://www.facebook.com/SeleniumBase"><img src="https://seleniumbase.io/img/social/share_facebook.svg?sanitize=true" title="SeleniumBase on Facebook" alt="SeleniumBase on Facebook" width="62"></a></span> </div> <p></p> <p></p> <div> <b><a href="https://github.com/mdmintz">https://github.com/mdmintz</a></b> </div> <p></p> <div> <a href="https://github.com/seleniumbase/SeleniumBase/"><img src="https://seleniumbase.github.io/cdn/img/super_logo_sb3.png" title="SeleniumBase" width="274"></a> </div> <div> <a href="https://seleniumbase.io"><img src="https://img.shields.io/badge/docs-seleniumbase.io-11BBAA.svg?sanitize=true" alt="SeleniumBase Docs"></a> <a href="https://github.com/seleniumbase/SeleniumBase/raw/master/LICENSE"><img src="https://img.shields.io/badge/license-MIT-22BBCC.svg?sanitize=true" title="SeleniumBase"></a> </div> <div> <a href="https://github.com/seleniumbase/SeleniumBase"><img src="https://img.shields.io/badge/tested%20with-SeleniumBase-04C38E.svg?sanitize=true" alt="Tested with SeleniumBase"></a> <a href="https://github.com/seleniumbase/SeleniumBase/stargazers"><img src="https://img.shields.io/github/stars/seleniumbase/seleniumbase.svg?color=19A57B" title="Stargazers"></a> </div> <div> <a href="https://hellogithub.com/repository/c6be2d0f1969448697683d11a4ff915e" target="_blank"><img src="https://abroad.hellogithub.com/v1/widgets/recommend.svg?rid=c6be2d0f1969448697683d11a4ff915e&amp;claim_uid=xcrm4p9j3d6JCO5&amp;theme=small" alt="Featured|HelloGitHub"></a> <a href="https://discord.gg/EdhQTn3EyE" target="_blank"><img src="https://img.shields.io/badge/join-discord-infomational" alt="Join the SeleniumBase chat on Discord"></a> <a href="https://gitter.im/seleniumbase/SeleniumBase" target="_blank"><img src="https://img.shields.io/gitter/room/seleniumbase/SeleniumBase.svg?sanitize=true" alt="Gitter chat"></a> </div> <div> <a href="https://pepy.tech/project/seleniumbase" target="_blank"><img src="https://static.pepy.tech/badge/seleniumbase" alt="SeleniumBase PyPI downloads"></a> <img src="https://views.whatilearened.today/views/github/seleniumbase/SeleniumBase.svg?sanitize=true" width="98px" height="20px" alt="Views"> </div> <div align="left"></div> - \ No newline at end of file diff --git a/q%23/daily/index.xml b/q%23/daily/index.xml index 2d0f1fcf00d..2cb3529a183 100644 --- a/q%23/daily/index.xml +++ b/q%23/daily/index.xml @@ -1,7 +1,7 @@ GitHub Q# Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:36:35Z + 2024-12-20T01:36:43Z Daily Trending of Q# in GitHub \ No newline at end of file diff --git a/q/daily/index.xml b/q/daily/index.xml index cde9e9f4cc3..bcaf8e116b1 100644 --- a/q/daily/index.xml +++ b/q/daily/index.xml @@ -1,7 +1,7 @@ GitHub q Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:36:29Z + 2024-12-20T01:36:38Z Daily Trending of q in GitHub \ No newline at end of file diff --git a/qmake/daily/index.xml b/qmake/daily/index.xml index fd10c7701e5..db436708402 100644 --- a/qmake/daily/index.xml +++ b/qmake/daily/index.xml @@ -1,7 +1,7 @@ GitHub QMake Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:36:35Z + 2024-12-20T01:36:43Z Daily Trending of QMake in GitHub \ No newline at end of file diff --git a/qml/daily/index.xml b/qml/daily/index.xml index 60af42adca5..6dc08ecb0e3 100644 --- a/qml/daily/index.xml +++ b/qml/daily/index.xml @@ -1,7 +1,7 @@ GitHub QML Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:36:35Z + 2024-12-20T01:36:44Z Daily Trending of QML in GitHub \ No newline at end of file diff --git a/qt-script/daily/index.xml b/qt-script/daily/index.xml index 7b3f7b7d179..03ef737d967 100644 --- a/qt-script/daily/index.xml +++ b/qt-script/daily/index.xml @@ -1,7 +1,7 @@ GitHub Qt Script Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:36:34Z + 2024-12-20T01:36:43Z Daily Trending of Qt Script in GitHub \ No newline at end of file diff --git a/quake/daily/index.xml b/quake/daily/index.xml index e6e1f94a45a..b8d9b011c13 100644 --- a/quake/daily/index.xml +++ b/quake/daily/index.xml @@ -1,7 +1,7 @@ GitHub Quake Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:36:36Z + 2024-12-20T01:36:45Z Daily Trending of Quake in GitHub \ No newline at end of file diff --git a/r/daily/index.xml b/r/daily/index.xml index 9a385c99948..dc804661e98 100644 --- a/r/daily/index.xml +++ b/r/daily/index.xml @@ -1,7 +1,14 @@ GitHub R Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:36:38Z + 2024-12-20T01:36:46Z Daily Trending of R in GitHub + + jbengler/tidyplots + 2024-12-20T01:36:46Z + tag:github.com,2024-12-20:/jbengler/tidyplots + + <p>Tidy Plots for Scientific Papers</p><hr><h1>tidyplots <a href="https://jbengler.github.io/tidyplots/"><img src="https://raw.githubusercontent.com/jbengler/tidyplots/master/man/figures/logo.svg?sanitize=true" align="right" height="139" alt="tidyplots website"></a></h1> <!-- badges: start --> <p><a href="https://github.com/jbengler/tidyplots/actions/workflows/R-CMD-check.yaml"><img src="https://github.com/jbengler/tidyplots/actions/workflows/R-CMD-check.yaml/badge.svg?sanitize=true" alt="R-CMD-check"></a> <a href="https://CRAN.R-project.org/package=tidyplots"><img src="https://www.r-pkg.org/badges/version/tidyplots" alt="CRAN status"></a></p> <!-- badges: end --> <p>The goal of <code>tidyplots</code> is to streamline the creation of publication-ready plots for scientific papers. It allows to gradually add, remove and adjust plot components using a consistent and intuitive syntax.</p> <h2>Installation</h2> <p>You can install the released version of tidyplots from <a href="https://cran.r-project.org/">CRAN</a> with:</p> <pre><code class="language-r">install.packages("tidyplots") </code></pre> <p>And the development version from <a href="https://github.com/">GitHub</a> with:</p> <pre><code class="language-r"># install.packages("devtools") devtools::install_github("jbengler/tidyplots") </code></pre> <h2>Usage</h2> <p>Here are some examples. Also have a look at the <a href="https://jbengler.github.io/tidyplots/articles/tidyplots.html">getting started guide</a> and the <a href="https://jbengler.github.io/tidyplots/reference/">full documentation</a>.</p> <pre><code class="language-r">library(tidyplots) study %&gt;% tidyplot(x = treatment, y = score, color = treatment) %&gt;% add_mean_bar(alpha = 0.4) %&gt;% add_sem_errorbar() %&gt;% add_data_points_beeswarm() </code></pre> <img src="https://raw.githubusercontent.com/jbengler/tidyplots/master/man/figures/README-unnamed-chunk-2-1.png" style="display: block; margin: auto;"> <pre><code class="language-r">energy %&gt;% tidyplot(x = year, y = power, color = energy_source) %&gt;% add_barstack_absolute() </code></pre> <img src="https://raw.githubusercontent.com/jbengler/tidyplots/master/man/figures/README-unnamed-chunk-3-1.png" style="display: block; margin: auto;"> <pre><code class="language-r">energy %&gt;% dplyr::filter(year %in% c(2005, 2010, 2015, 2020)) %&gt;% tidyplot(y = power, color = energy_source) %&gt;% add_donut() %&gt;% split_plot(by = year) </code></pre> <img src="https://raw.githubusercontent.com/jbengler/tidyplots/master/man/figures/README-unnamed-chunk-4-1.png" style="display: block; margin: auto;"> <pre><code class="language-r">energy_week %&gt;% tidyplot(x = date, y = power, color = energy_source) %&gt;% add_areastack_absolute() </code></pre> <img src="https://raw.githubusercontent.com/jbengler/tidyplots/master/man/figures/README-unnamed-chunk-5-1.png" style="display: block; margin: auto;"> <pre><code class="language-r">energy_week %&gt;% tidyplot(x = date, y = power, color = energy_source) %&gt;% add_areastack_relative() </code></pre> <img src="https://raw.githubusercontent.com/jbengler/tidyplots/master/man/figures/README-unnamed-chunk-6-1.png" style="display: block; margin: auto;"> <pre><code class="language-r">study %&gt;% tidyplot(x = group, y = score, color = dose) %&gt;% add_mean_bar(alpha = 0.4) %&gt;% add_mean_dash() %&gt;% add_mean_value() </code></pre> <img src="https://raw.githubusercontent.com/jbengler/tidyplots/master/man/figures/README-unnamed-chunk-7-1.png" style="display: block; margin: auto;"> <pre><code class="language-r">time_course %&gt;% tidyplot(x = day, y = score, color = treatment) %&gt;% add_mean_line() %&gt;% add_mean_dot() %&gt;% add_sem_ribbon() </code></pre> <img src="https://raw.githubusercontent.com/jbengler/tidyplots/master/man/figures/README-unnamed-chunk-8-1.png" style="display: block; margin: auto;"> <pre><code class="language-r">climate %&gt;% tidyplot(x = month, y = year, color = max_temperature) %&gt;% add_heatmap() </code></pre> <img src="https://raw.githubusercontent.com/jbengler/tidyplots/master/man/figures/README-unnamed-chunk-9-1.png" style="display: block; margin: auto;"> <pre><code class="language-r">study %&gt;% tidyplot(x = treatment, y = score, color = treatment) %&gt;% add_boxplot() %&gt;% add_test_pvalue(ref.group = 1) </code></pre> <img src="https://raw.githubusercontent.com/jbengler/tidyplots/master/man/figures/README-unnamed-chunk-10-1.png" style="display: block; margin: auto;"> <pre><code class="language-r">gene_expression %&gt;% dplyr::filter(external_gene_name %in% c("Apol6", "Col5a3", "Vgf", "Bsn")) %&gt;% tidyplot(x = condition, y = expression, color = sample_type) %&gt;% add_mean_dash() %&gt;% add_sem_errorbar() %&gt;% add_data_points_beeswarm() %&gt;% add_test_asterisks(hide_info = TRUE) %&gt;% remove_x_axis_title() %&gt;% split_plot(by = external_gene_name) </code></pre> <img src="https://raw.githubusercontent.com/jbengler/tidyplots/master/man/figures/README-unnamed-chunk-11-1.png" style="display: block; margin: auto;"> <pre><code class="language-r">study %&gt;% tidyplot(x = treatment, y = score, color = treatment) %&gt;% add_mean_bar(alpha = 0.4) %&gt;% add_sem_errorbar() %&gt;% add_data_points_beeswarm() %&gt;% view_plot(title = "Default color scheme: 'friendly'") %&gt;% adjust_colors(colors_discrete_apple) %&gt;% view_plot(title = "Alternative color scheme: 'apple'") </code></pre> <p><img src="https://raw.githubusercontent.com/jbengler/tidyplots/master/man/figures/README-unnamed-chunk-12-1.png" style="display: block; margin: auto;"><img src="https://raw.githubusercontent.com/jbengler/tidyplots/master/man/figures/README-unnamed-chunk-12-2.png" style="display: block; margin: auto;"></p> <h2>Documentation</h2> <ul> <li> <p><a href="https://jbengler.github.io/tidyplots/reference/">Package index</a><br> Overview of all tidyplots functions</p> </li> <li> <p><a href="https://jbengler.github.io/tidyplots/articles/tidyplots.html">Get started</a><br> Getting started guide</p> </li> <li> <p><a href="https://jbengler.github.io/tidyplots/articles/Visualizing-data.html">Visualizing data</a><br> Article with examples for common data visualizations</p> </li> <li> <p><a href="https://jbengler.github.io/tidyplots/articles/Advanced-plotting.html">Advanced plotting</a><br> Article about advanced plotting techniques and workflows</p> </li> <li> <p><a href="https://jbengler.github.io/tidyplots/articles/Color-schemes.html">Color schemes</a><br> Article about the use of color schemes</p> </li> </ul> <h2>Acknowledgements</h2> <p>I would like to thank Lars Binkle-Ladisch for our insightful discussions and for consistently challenging my decisions regarding the naming of functions and their arguments.</p> <p>Many thanks to the R and tidyverse communities. tidyplots is built upon their software and coding paradigms, and it would not have been possible without their contributions.</p> <p>tidyplots relies on several fantastic packages that handle all the heavy lifting behind the scenes. These include cli, dplyr, forcats, ggbeeswarm, ggplot2, ggpubr, ggrastr, ggrepel, glue, Hmisc, htmltools, lifecycle, patchwork, purrr, rlang, scales, stringr, tidyr, and tidyselect.</p> + \ No newline at end of file diff --git a/racket/daily/index.xml b/racket/daily/index.xml index 552409452f2..25ddda04328 100644 --- a/racket/daily/index.xml +++ b/racket/daily/index.xml @@ -1,7 +1,7 @@ GitHub Racket Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:36:37Z + 2024-12-20T01:36:44Z Daily Trending of Racket in GitHub \ No newline at end of file diff --git a/ragel/daily/index.xml b/ragel/daily/index.xml index 20f113e8bc0..59749b8d16b 100644 --- a/ragel/daily/index.xml +++ b/ragel/daily/index.xml @@ -1,7 +1,7 @@ GitHub Ragel Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:36:39Z + 2024-12-20T01:36:49Z Daily Trending of Ragel in GitHub \ No newline at end of file diff --git a/raku/daily/index.xml b/raku/daily/index.xml index 6b2735e75e6..e0f18c1d566 100644 --- a/raku/daily/index.xml +++ b/raku/daily/index.xml @@ -1,7 +1,7 @@ GitHub Raku Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:36:40Z + 2024-12-20T01:36:48Z Daily Trending of Raku in GitHub \ No newline at end of file diff --git a/raml/daily/index.xml b/raml/daily/index.xml index cf34d01cc00..0c376ca95d9 100644 --- a/raml/daily/index.xml +++ b/raml/daily/index.xml @@ -1,7 +1,7 @@ GitHub RAML Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:36:40Z + 2024-12-20T01:36:49Z Daily Trending of RAML in GitHub \ No newline at end of file diff --git a/rascal/daily/index.xml b/rascal/daily/index.xml index d4a66160da9..8f17d23d993 100644 --- a/rascal/daily/index.xml +++ b/rascal/daily/index.xml @@ -1,7 +1,7 @@ GitHub Rascal Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:36:39Z + 2024-12-20T01:36:49Z Daily Trending of Rascal in GitHub \ No newline at end of file diff --git a/raw-token-data/daily/index.xml b/raw-token-data/daily/index.xml index f6f375a2b97..de5104185cf 100644 --- a/raw-token-data/daily/index.xml +++ b/raw-token-data/daily/index.xml @@ -1,7 +1,7 @@ GitHub Raw token data Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:36:41Z + 2024-12-20T01:36:50Z Daily Trending of Raw token data in GitHub \ No newline at end of file diff --git a/rdoc/daily/index.xml b/rdoc/daily/index.xml index d7fa91d208f..cd021112520 100644 --- a/rdoc/daily/index.xml +++ b/rdoc/daily/index.xml @@ -1,7 +1,7 @@ GitHub RDoc Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:36:42Z + 2024-12-20T01:36:50Z Daily Trending of RDoc in GitHub \ No newline at end of file diff --git a/readline-config/daily/index.xml b/readline-config/daily/index.xml index 8c2ff9dab3f..1ff629a4c32 100644 --- a/readline-config/daily/index.xml +++ b/readline-config/daily/index.xml @@ -1,7 +1,7 @@ GitHub Readline Config Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:36:41Z + 2024-12-20T01:36:51Z Daily Trending of Readline Config in GitHub \ No newline at end of file diff --git a/realbasic/daily/index.xml b/realbasic/daily/index.xml index 28196487920..9013d6f14cb 100644 --- a/realbasic/daily/index.xml +++ b/realbasic/daily/index.xml @@ -1,7 +1,7 @@ GitHub REALbasic Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:36:42Z + 2024-12-20T01:36:52Z Daily Trending of REALbasic in GitHub \ No newline at end of file diff --git a/reason/daily/index.xml b/reason/daily/index.xml index 7ba8eb10744..402330bb8ab 100644 --- a/reason/daily/index.xml +++ b/reason/daily/index.xml @@ -1,7 +1,7 @@ GitHub Reason Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:36:43Z + 2024-12-20T01:36:52Z Daily Trending of Reason in GitHub \ No newline at end of file diff --git a/rebol/daily/index.xml b/rebol/daily/index.xml index 4070185243b..70e45f799be 100644 --- a/rebol/daily/index.xml +++ b/rebol/daily/index.xml @@ -1,7 +1,7 @@ GitHub Rebol Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:36:43Z + 2024-12-20T01:36:52Z Daily Trending of Rebol in GitHub \ No newline at end of file diff --git a/record-jar/daily/index.xml b/record-jar/daily/index.xml index 0659d1adcfb..e8ac768114c 100644 --- a/record-jar/daily/index.xml +++ b/record-jar/daily/index.xml @@ -1,7 +1,7 @@ GitHub Record Jar Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:36:44Z + 2024-12-20T01:36:54Z Daily Trending of Record Jar in GitHub \ No newline at end of file diff --git a/red/daily/index.xml b/red/daily/index.xml index 5889bcefb72..3b3bdfc046d 100644 --- a/red/daily/index.xml +++ b/red/daily/index.xml @@ -1,7 +1,7 @@ GitHub Red Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:36:44Z + 2024-12-20T01:36:54Z Daily Trending of Red in GitHub \ No newline at end of file diff --git a/redcode/daily/index.xml b/redcode/daily/index.xml index 0b55b5fc649..8e3d3af1385 100644 --- a/redcode/daily/index.xml +++ b/redcode/daily/index.xml @@ -1,7 +1,7 @@ GitHub Redcode Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:36:44Z + 2024-12-20T01:36:53Z Daily Trending of Redcode in GitHub \ No newline at end of file diff --git a/redirect-rules/daily/index.xml b/redirect-rules/daily/index.xml index 9a96decc8c9..b91915cb80f 100644 --- a/redirect-rules/daily/index.xml +++ b/redirect-rules/daily/index.xml @@ -1,7 +1,7 @@ GitHub Redirect Rules Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:36:45Z + 2024-12-20T01:36:53Z Daily Trending of Redirect Rules in GitHub \ No newline at end of file diff --git a/regular-expression/daily/index.xml b/regular-expression/daily/index.xml index a07c87c3eeb..1d818a569c3 100644 --- a/regular-expression/daily/index.xml +++ b/regular-expression/daily/index.xml @@ -1,7 +1,7 @@ GitHub Regular Expression Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:36:46Z + 2024-12-20T01:36:55Z Daily Trending of Regular Expression in GitHub \ No newline at end of file diff --git a/ren'py/daily/index.xml b/ren'py/daily/index.xml index fc7a858fb6b..59f9d836576 100644 --- a/ren'py/daily/index.xml +++ b/ren'py/daily/index.xml @@ -1,7 +1,7 @@ GitHub Ren'Py Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:36:46Z + 2024-12-20T01:36:55Z Daily Trending of Ren'Py in GitHub \ No newline at end of file diff --git a/renderscript/daily/index.xml b/renderscript/daily/index.xml index f6cbf3f928c..14a46053413 100644 --- a/renderscript/daily/index.xml +++ b/renderscript/daily/index.xml @@ -1,7 +1,7 @@ GitHub RenderScript Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:36:46Z + 2024-12-20T01:36:55Z Daily Trending of RenderScript in GitHub \ No newline at end of file diff --git a/rescript/daily/index.xml b/rescript/daily/index.xml index 22313db6705..95513e49596 100644 --- a/rescript/daily/index.xml +++ b/rescript/daily/index.xml @@ -1,7 +1,7 @@ GitHub ReScript Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:36:47Z + 2024-12-20T01:36:56Z Daily Trending of ReScript in GitHub \ No newline at end of file diff --git a/restructuredtext/daily/index.xml b/restructuredtext/daily/index.xml index 0afe76241f1..b27efcdcaf9 100644 --- a/restructuredtext/daily/index.xml +++ b/restructuredtext/daily/index.xml @@ -1,7 +1,7 @@ GitHub reStructuredText Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:36:49Z + 2024-12-20T01:36:57Z Daily Trending of reStructuredText in GitHub \ No newline at end of file diff --git a/rexx/daily/index.xml b/rexx/daily/index.xml index 1196ea0c736..760e51c92e7 100644 --- a/rexx/daily/index.xml +++ b/rexx/daily/index.xml @@ -1,7 +1,7 @@ GitHub REXX Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:36:48Z + 2024-12-20T01:36:56Z Daily Trending of REXX in GitHub \ No newline at end of file diff --git a/rich-text-format/daily/index.xml b/rich-text-format/daily/index.xml index 5ebcf6c7976..51b19b6bd46 100644 --- a/rich-text-format/daily/index.xml +++ b/rich-text-format/daily/index.xml @@ -1,7 +1,7 @@ GitHub Rich Text Format Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:36:48Z + 2024-12-20T01:37:03Z Daily Trending of Rich Text Format in GitHub \ No newline at end of file diff --git a/ring/daily/index.xml b/ring/daily/index.xml index 538faf9a343..f0c7104e8e3 100644 --- a/ring/daily/index.xml +++ b/ring/daily/index.xml @@ -1,7 +1,7 @@ GitHub Ring Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:36:49Z + 2024-12-20T01:37:04Z Daily Trending of Ring in GitHub \ No newline at end of file diff --git a/riot/daily/index.xml b/riot/daily/index.xml index 471fc00cdf1..0046e873e9c 100644 --- a/riot/daily/index.xml +++ b/riot/daily/index.xml @@ -1,7 +1,7 @@ GitHub Riot Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:36:50Z + 2024-12-20T01:37:04Z Daily Trending of Riot in GitHub \ No newline at end of file diff --git a/rmarkdown/daily/index.xml b/rmarkdown/daily/index.xml index 549c133fe13..6acfa44830e 100644 --- a/rmarkdown/daily/index.xml +++ b/rmarkdown/daily/index.xml @@ -1,7 +1,7 @@ GitHub RMarkdown Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:36:50Z + 2024-12-20T01:37:03Z Daily Trending of RMarkdown in GitHub \ No newline at end of file diff --git a/robotframework/daily/index.xml b/robotframework/daily/index.xml index 50559281763..9faadac8b51 100644 --- a/robotframework/daily/index.xml +++ b/robotframework/daily/index.xml @@ -1,7 +1,7 @@ GitHub RobotFramework Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:36:50Z + 2024-12-20T01:37:04Z Daily Trending of RobotFramework in GitHub \ No newline at end of file diff --git a/robots.txt/daily/index.xml b/robots.txt/daily/index.xml index 4d9487d2636..e8168e1acf7 100644 --- a/robots.txt/daily/index.xml +++ b/robots.txt/daily/index.xml @@ -1,7 +1,7 @@ GitHub robots.txt Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:36:51Z + 2024-12-20T01:37:05Z Daily Trending of robots.txt in GitHub \ No newline at end of file diff --git a/roff-manpage/daily/index.xml b/roff-manpage/daily/index.xml index eb2525f406f..3d41763dff8 100644 --- a/roff-manpage/daily/index.xml +++ b/roff-manpage/daily/index.xml @@ -1,7 +1,7 @@ GitHub Roff Manpage Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:36:52Z + 2024-12-20T01:37:05Z Daily Trending of Roff Manpage in GitHub \ No newline at end of file diff --git a/roff/daily/index.xml b/roff/daily/index.xml index a682277a108..80de38b9831 100644 --- a/roff/daily/index.xml +++ b/roff/daily/index.xml @@ -1,7 +1,7 @@ GitHub Roff Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:36:52Z + 2024-12-20T01:37:06Z Daily Trending of Roff in GitHub \ No newline at end of file diff --git a/rouge/daily/index.xml b/rouge/daily/index.xml index db46e8efe23..41b88622899 100644 --- a/rouge/daily/index.xml +++ b/rouge/daily/index.xml @@ -1,7 +1,7 @@ GitHub Rouge Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:36:53Z + 2024-12-20T01:37:07Z Daily Trending of Rouge in GitHub \ No newline at end of file diff --git a/rpc/daily/index.xml b/rpc/daily/index.xml index 7911d84d3c9..d079d1cc0c0 100644 --- a/rpc/daily/index.xml +++ b/rpc/daily/index.xml @@ -1,7 +1,7 @@ GitHub RPC Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:36:53Z + 2024-12-20T01:37:08Z Daily Trending of RPC in GitHub \ No newline at end of file diff --git a/rpgle/daily/index.xml b/rpgle/daily/index.xml index 346f9f572a4..c1e8c369f20 100644 --- a/rpgle/daily/index.xml +++ b/rpgle/daily/index.xml @@ -1,7 +1,7 @@ GitHub RPGLE Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:36:54Z + 2024-12-20T01:37:09Z Daily Trending of RPGLE in GitHub \ No newline at end of file diff --git a/rpm-spec/daily/index.xml b/rpm-spec/daily/index.xml index a58b6aa7146..eedd78e8008 100644 --- a/rpm-spec/daily/index.xml +++ b/rpm-spec/daily/index.xml @@ -1,7 +1,7 @@ GitHub RPM Spec Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:36:55Z + 2024-12-20T01:37:09Z Daily Trending of RPM Spec in GitHub \ No newline at end of file diff --git a/ruby/daily/index.xml b/ruby/daily/index.xml index a94322112f0..031dc69c93f 100644 --- a/ruby/daily/index.xml +++ b/ruby/daily/index.xml @@ -1,7 +1,7 @@ GitHub Ruby Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:36:58Z + 2024-12-20T01:37:20Z Daily Trending of Ruby in GitHub \ No newline at end of file diff --git a/runoff/daily/index.xml b/runoff/daily/index.xml index 6a5bc2d972b..cde04fc6c51 100644 --- a/runoff/daily/index.xml +++ b/runoff/daily/index.xml @@ -1,7 +1,7 @@ GitHub RUNOFF Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:36:55Z + 2024-12-20T01:37:09Z Daily Trending of RUNOFF in GitHub \ No newline at end of file diff --git a/rust/daily/index.xml b/rust/daily/index.xml index fe35c2e2052..3f69de401af 100644 --- a/rust/daily/index.xml +++ b/rust/daily/index.xml @@ -1,21 +1,14 @@ GitHub Rust Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:37:04Z + 2024-12-20T01:37:29Z Daily Trending of Rust in GitHub - rgwood/systemctl-tui - 2024-12-19T01:37:04Z - tag:github.com,2024-12-19:/rgwood/systemctl-tui - - <p>A fast, simple TUI for interacting with systemd services and their logs</p><hr><h1>systemctl-tui</h1> <p><a href="https://crates.io/crates/systemctl-tui"><img src="https://img.shields.io/crates/v/systemctl-tui.svg?sanitize=true" alt="Crates.io"></a></p> <p>A fast, simple TUI for interacting with <a href="https://en.wikipedia.org/wiki/Systemd">systemd</a> services and their logs. <img src="https://github.com/rgwood/systemctl-tui/assets/26268125/1ca529c6-2018-46c4-ae42-2c0f5925933d" alt="image"></p> <p><code>systemctl-tui</code> can quickly browse service status and logs, and start/stop/restart services. It aims to do a small number of things well.</p> <h2>Install</h2> <p>Note: this project only works on Linux (WSL works <em>if</em> you <a href="https://devblogs.microsoft.com/commandline/systemd-support-is-now-available-in-wsl/">have systemd enabled</a>). Binaries are published for x64 and ARM64 in the GitHub releases, and <a href="https://raw.githubusercontent.com/rgwood/systemctl-tui/master/#distro-packages">distro packages</a> are available.</p> <p>If you'd rather build from scratch you will need <a href="https://rustup.rs/">Rust installed</a>. Then either:</p> <ol> <li>Run <code>cargo install systemctl-tui --locked</code></li> <li>Clone the repo and run <code>cargo build --release</code> to get a release binary at <code>target/release/systemctl-tui</code></li> </ol> <h3>Distro Packages</h3> <details> <summary>Packaging status</summary> <p><a href="https://repology.org/project/systemctl-tui/versions"><img src="https://repology.org/badge/vertical-allrepos/systemctl-tui.svg?sanitize=true" alt="Packaging status"></a></p> </details> <h4>Arch Linux</h4> <p><code>systemctl-tui</code> can be installed from the <a href="https://archlinux.org/packages/extra/x86_64/systemctl-tui/">official repositories</a>:</p> <pre><code class="language-sh">pacman -S systemctl-tui </code></pre> <h4>Nix</h4> <p><a href="https://search.nixos.org/packages?query=systemctl-tui">A Nix package</a> is available and can be installed as follows:</p> <pre><code class="language-sh">nix-shell -p systemctl-tui </code></pre> <h4>Optional:</h4> <ol> <li>Alias <code>systemctl-tui</code> to <code>st</code> for quick access</li> <li>Create a symlink so <code>systemctl-tui</code> can be used with sudo:</li> </ol> <pre><code class="language-sh">sudo ln -s ~/.cargo/bin/systemctl-tui /usr/bin/systemctl-tui </code></pre> <h2>Help</h2> <p><img src="https://github.com/rgwood/systemctl-tui/assets/26268125/b1b49850-61c4-4667-9110-20a34f917055" alt="image"></p> <h2>Credits</h2> <ul> <li>Inspired by the truly wonderful <a href="https://github.com/jesseduffield/lazygit">Lazygit</a></li> <li><a href="https://github.com/joehillen/sysz"><code>sysz</code></a> is so cool</li> <li>Used <a href="https://github.com/kdheepak/ratatui-template/"><code>ratatui-template</code></a> to get started</li> <li>systemd code partially taken from <a href="https://github.com/servicer-labs/servicer"><code>servicer</code></a></li> </ul> - - - thomas-mauran/chess-tui - 2024-12-19T01:37:04Z - tag:github.com,2024-12-19:/thomas-mauran/chess-tui - - <p>Play chess from your terminal 🦀</p><hr><div align="center"> <h1>chess-tui</h1> A rusty chess game in your terminal 🦀 <p><img src="https://raw.githubusercontent.com/thomas-mauran/chess-tui/main/examples/play_against_white_bot.gif" alt="board"></p> <div> <p><img src="https://github.com/thomas-mauran/chess-tui/actions/workflows/flow_test_build_push.yml/badge.svg?sanitize=true" alt="GitHub CI"><a href="https://opensource.org/licenses/MIT"><img src="https://img.shields.io/badge/License-MIT-yellow.svg?sanitize=true" alt="License: MIT"></a><a href="https://github.com/thomas-mauran/chess-tui/releases/latest"><img src="https://img.shields.io/github/v/release/thomas-mauran/chess-tui?color=success" alt="GitHub release"></a></p> </div> </div> <h3>Description</h3> <p>Chess-tui is a simple chess game you can play from your terminal. It supports local 2 players mode, online multiplayer and playing against any UCI compatible chess engine.</p> <h3>Quick install</h3> <pre><code class="language-bash">cargo install chess-tui chess-tui </code></pre> <p>If you want to install the game with your favorite package manager, you can find the installation guide <a href="https://thomas-mauran.github.io/chess-tui/docs/Installation/Packaging%20status">here</a>.</p> <h3>Available on</h3> <p><a href="https://repology.org/project/chess-tui/versions"><img src="https://repology.org/badge/vertical-allrepos/chess-tui.svg?sanitize=true" alt="Packaging status"></a></p> <h3>Features</h3> <details> <summary>Helper menu</summary> <img src="https://raw.githubusercontent.com/thomas-mauran/chess-tui/main/examples/helper.gif" alt="Helper menu"> </details> <details> <summary>Local 2 player mode</summary> <img src="https://raw.githubusercontent.com/thomas-mauran/chess-tui/main/examples/demo.gif" alt="Local 2 players"> </details> <details> <summary>Online multiplayer</summary> <img src="https://raw.githubusercontent.com/thomas-mauran/chess-tui/main/website/static/gif/multiplayer.gif" alt="Online multiplayer"> </details> <details> <summary>Draws</summary> <ul> <li>Stalemate</li> <li>50 moves rules</li> <li>3 time repetition of the same position</li> </ul> </details> <details> <summary>Piece Promotion</summary> no demo available yet </details> <details> <summary>Play against any UCI chess engine as black or white</summary> <h3>Play the white pieces</h3> <img src="https://raw.githubusercontent.com/thomas-mauran/chess-tui/main/examples/play_against_white_bot.gif" alt="Play against a chess engine as white"> <h3>Play the black pieces</h3> <img src="https://raw.githubusercontent.com/thomas-mauran/chess-tui/main/examples/play_against_black_bot.gif" alt="Play against a chess engine as black"> </details> <h3>Connect a chess engine</h3> <p>You can play chess-tui with any UCI compatible chess engines. To do so you will need to use the -e command to give the chess engine binary path.</p> <p>Example:</p> <pre><code class="language-bash">chess-tui -e /your/bin/path </code></pre> <p>Here I installed stockfish using homebrew and gave chess-tui the path the the engine binary. This command will store in your home directory the chess engine path so you don't have to relink it everytime !</p> <h3>Documentation</h3> <p>You can find the documentation of the project <a href="https://thomas-mauran.github.io/chess-tui/docs/intro">here</a></p> <h3>Roadmap</h3> <p>You can find the roadmap of the project <a href="https://github.com/users/thomas-mauran/projects/4">here</a> if you want to contribute.</p> <h3>Crates.io</h3> <p>The project is also available on crates.io <a href="https://crates.io/crates/chess-tui">here</a></p> + jj-vcs/jj + 2024-12-20T01:37:29Z + tag:github.com,2024-12-20:/jj-vcs/jj + + <p>A Git-compatible VCS that is both simple and powerful</p><hr><div class="title-block" style="text-align: center;" align="center"> <h1>Jujutsu—a version control system</h1> <p><a href="https://github.com/jj-vcs/jj/releases"><img src="https://img.shields.io/github/v/release/martinvonz/jj" alt="Release"></a> <a href="https://github.com/jj-vcs/jj/releases"><img src="https://img.shields.io/github/release-date/martinvonz/jj" alt="Release date"></a> <br> <a href="https://github.com/jj-vcs/jj/raw/main/LICENSE"><img src="https://img.shields.io/github/license/martinvonz/jj" alt="License"></a> <a href="https://discord.gg/dkmfj3aGQN"><img src="https://img.shields.io/discord/968932220549103686.svg?label=&amp;logo=discord&amp;logoColor=ffffff&amp;color=7389D8&amp;labelColor=6A7EC2" alt="Discord"></a> <a href="https://web.libera.chat/?channel=#jujutsu"><img src="https://img.shields.io/badge/irc-%23jujutsu-blue.svg?sanitize=true" alt="IRC"></a></p> <p><strong><a href="https://jj-vcs.github.io/jj">Homepage</a> &nbsp;&nbsp;•&nbsp;&nbsp;</strong> <strong><a href="https://jj-vcs.github.io/jj/latest/install-and-setup">Installation</a> &nbsp;&nbsp;•&nbsp;&nbsp;</strong> <strong><a href="https://jj-vcs.github.io/jj/latest/tutorial">Getting Started</a> &nbsp;&nbsp;•&nbsp;&nbsp;</strong> <strong><a href="https://jj-vcs.github.io/jj/latest/roadmap">Development Roadmap</a> &nbsp;&nbsp;•&nbsp;&nbsp;</strong> <strong><a href="https://raw.githubusercontent.com/jj-vcs/jj/main/#contributing">Contributing</a></strong></p> </div> <h2>Introduction</h2> <p>Jujutsu is a powerful <a href="https://en.wikipedia.org/wiki/Version_control">version control system</a> for software projects. You use it to get a copy of your code, track changes to the code, and finally publish those changes for others to see and use. It is designed from the ground up to be easy to use—whether you're new or experienced, working on brand new projects alone, or large scale software projects with large histories and teams.</p> <p>Jujutsu is unlike most other systems, because internally it abstracts the user interface and version control algorithms from the <em>storage systems</em> used to serve your content. This allows it to serve as a VCS with many possible physical backends, that may have their own data or networking models—like <a href="https://www.mercurial-scm.org/">Mercurial</a> or <a href="https://www.breezy-vcs.org/">Breezy</a>, or hybrid systems like Google's cloud-based design, <a href="https://youtu.be/W71BTkUbdqE?t=645">Piper/CitC</a>.</p> <p>Today, we use Git repositories as a storage layer to serve and track content, making it <strong>compatible with many of your favorite Git-based tools, right now!</strong> All core developers use Jujutsu to develop Jujutsu, right here on GitHub. But it should hopefully work with your favorite Git forges, too.</p> <p>We combine many distinct design choices and concepts from other version control systems into a single tool. Some of those sources of inspiration include:</p> <ul> <li> <p><strong>Git</strong>: We make an effort to <a href="https://github.com/jj-vcs/jj/discussions/49">be fast</a>—with a snappy UX, efficient algorithms, correct data structures, and good-old-fashioned attention to detail. The default storage backend uses Git repositories for "physical storage", for wide interoperability and ease of onboarding.</p> </li> <li> <p><strong>Mercurial &amp; Sapling</strong>: There are many Mercurial-inspired features, such as the <a href="https://jj-vcs.github.io/jj/latest/revsets/">revset</a> language to select commits. There is <a href="https://jj-vcs.github.io/jj/latest/git-comparison/#the-index">no explicit index</a> or staging area. Branches are "anonymous" like Mercurial, so you don't need to make up a name for each small change. Primitives for rewriting history are powerful and simple. Formatting output is done with a robust template language that can be configured by the user.</p> </li> <li> <p><strong>Darcs</strong>: Jujutsu keeps track of conflicts as <a href="https://jj-vcs.github.io/jj/latest/conflicts/">first-class objects</a> in its model; they are first-class in the same way commits are, while alternatives like Git simply think of conflicts as textual diffs. While not as rigorous as systems like Darcs (which is based on a formalized theory of patches, as opposed to snapshots), the effect is that many forms of conflict resolution can be performed and propagated automatically.</p> </li> </ul> <p>And it adds several innovative, useful features of its own:</p> <ul> <li> <p><strong>Working-copy-as-a-commit</strong>: Changes to files are <a href="https://jj-vcs.github.io/jj/latest/working-copy/">recorded automatically</a> as normal commits, and amended on every subsequent change. This "snapshot" design simplifies the user-facing data model (commits are the only visible object), simplifies internal algorithms, and completely subsumes features like Git's stashes or the index/staging-area.</p> </li> <li> <p><strong>Operation log &amp; undo</strong>: Jujutsu records every operation that is performed on the repository, from commits, to pulls, to pushes. This makes debugging problems like "what just happened?" or "how did I end up here?" easier, <em>especially</em> when you're helping your coworker answer those questions about their repository! And because everything is recorded, you can undo that mistake you just made with ease. Version control has finally entered <a href="https://en.wikipedia.org/wiki/Undo#History">the 1960s</a>!</p> </li> <li> <p><strong>Automatic rebase and conflict resolution</strong>: When you modify a commit, every descendent is automatically rebased on top of the freshly-modified one. This makes "patch-based" workflows a breeze. If you resolve a conflict in a commit, the <em>resolution</em> of that conflict is also propagated through descendants as well. In effect, this is a completely transparent version of <code>git rebase --update-refs</code> combined with <code>git rerere</code>, supported by design.</p> </li> </ul> <blockquote> <p>[!WARNING] The following features are available for use, but experimental; they may have bugs, backwards incompatible storage changes, and user-interface changes!</p> </blockquote> <ul> <li> <p><strong>Safe, concurrent replication</strong>: Have you ever wanted to store your version controlled repositories inside a Dropbox folder? Or continuously backup repositories to S3? No? Well, now you can!</p> <p>The fundamental problem with using filesystems like Dropbox and backup tools like <code>rsync</code> on your typical Git/Mercurial repositories is that they rely on <em>local filesystem operations</em> being atomic, serialized, and non-concurrent with respect to other reads and writes—which is <em>not</em> true when operating on distributed file systems, or when operations like concurrent file copies (for backup) happen while lock files are being held.</p> <p>Jujutsu is instead designed to be <a href="https://jj-vcs.github.io/jj/latest/technical/concurrency/">safe under concurrent scenarios</a>; simply using rsync or Dropbox and then using that resulting repository should never result in a repository in a <em>corrupt state</em>. The worst that <em>should</em> happen is that it will expose conflicts between the local and remote state, leaving you to resolve them.</p> </li> </ul> <p>The command-line tool is called <code>jj</code> for now because it's easy to type and easy to replace (rare in English). The project is called "Jujutsu" because it matches "jj".</p> <p>Jujutsu is relatively young, with lots of work to still be done. If you have any questions, or want to talk about future plans, please join us on Discord <a href="https://discord.gg/dkmfj3aGQN"><img src="https://img.shields.io/discord/968932220549103686.svg?label=&amp;logo=discord&amp;logoColor=ffffff&amp;color=7389D8&amp;labelColor=6A7EC2" alt="Discord"></a>, start a <a href="https://github.com/jj-vcs/jj/discussions">GitHub Discussion</a>, or send an IRC message to <a href="https://web.libera.chat/?channel=#jujutsu"><code>#jujutsu</code> on Libera Chat</a>. The developers monitor all of these channels[^bridge].</p> <p>[^bridge]: To be more precise, the <code>#jujutsu</code> Libera IRC channel is bridged to one of the channels on jj's Discord. Some of the developers stay on Discord and use the bridge to follow IRC.</p> <h3>News and Updates 📣</h3> <ul> <li><strong>Feb 2024</strong>: Version 0.14 is released, which deprecates <a href="https://raw.githubusercontent.com/jj-vcs/jj/main/CHANGELOG.md#0140---2024-02-07">"jj checkout" and "jj merge"</a>, as well as <code>jj init --git</code>, which is now just called <code>jj git init</code>.</li> <li><strong>Oct 2023</strong>: Version 0.10.0 is released! Now includes a bundled merge and diff editor for all platforms, "immutable revsets" to avoid accidentally <code>edit</code>-ing the wrong revisions, and lots of polish.</li> <li><strong>Jan 2023</strong>: Martin gave a presentation about Google's plans for Jujutsu at Git Merge 2022! See the <a href="https://docs.google.com/presentation/d/1F8j9_UOOSGUN9MvHxPZX_L4bQ9NMcYOp1isn17kTC_M/view">slides</a> or the <a href="https://www.youtube.com/watch?v=bx_LGilOuE4">recording</a>.</li> </ul> <h3>Related Media</h3> <ul> <li><strong>Mar 2024</strong>: Chris Krycho started <a href="https://www.youtube.com/playlist?list=PLelyiwKWHHAq01Pvmpf6x7J0y-yQpmtxp">a YouTube series about Jujutsu</a>.</li> <li><strong>Feb 2024</strong>: Chris Krycho published an article about Jujutsu called <a href="https://v5.chriskrycho.com/essays/jj-init/">jj init</a> and Steve Klabnik followed up with the <a href="https://steveklabnik.github.io/jujutsu-tutorial/">Jujutsu Tutorial</a>.</li> <li><strong>Jan 2024</strong>: Jujutsu was featured in an LWN.net article called <a href="https://lwn.net/Articles/958468/">Jujutsu: a new, Git-compatible version control system</a>.</li> <li><strong>Jan 2023</strong>: Martin's Talk about Jujutsu at Git Merge 2022, <a href="https://www.youtube.com/watch?v=bx_LGilOuE4">video</a> and the associated <a href="https://docs.google.com/presentation/d/1F8j9_UOOSGUN9MvHxPZX_L4bQ9NMcYOp1isn17kTC_M/view">slides</a>.</li> </ul> <p>The wiki also contains a more extensive list of <a href="https://github.com/jj-vcs/jj/wiki/Media">media references</a>.</p> <h2>Getting started</h2> <blockquote> <p>[!IMPORTANT] Jujutsu is an <strong>experimental version control system</strong>. While Git compatibility is stable, and most developers use it daily for all their needs, there may still be work-in-progress features, suboptimal UX, and workflow gaps that make it unusable for your particular use.</p> </blockquote> <p>Follow the <a href="https://jj-vcs.github.io/jj/latest/install-and-setup">installation instructions</a> to obtain and configure <code>jj</code>.</p> <p>The best way to get started is probably to go through <a href="https://jj-vcs.github.io/jj/latest/tutorial">the tutorial</a>. Also see the <a href="https://jj-vcs.github.io/jj/latest/git-comparison">Git comparison</a>, which includes a table of <code>jj</code> vs. <code>git</code> commands.</p> <p>As you become more familiar with Jujutsu, the following resources may be helpful:</p> <ul> <li>The <a href="https://jj-vcs.github.io/jj/latest/FAQ">FAQ</a>.</li> <li>The <a href="https://jj-vcs.github.io/jj/latest/glossary">Glossary</a>.</li> <li>The <code>jj help</code> command (e.g. <code>jj help rebase</code>).</li> </ul> <p>If you are using a <strong>prerelease</strong> version of <code>jj</code>, you would want to consult <a href="https://jj-vcs.github.io/jj/prerelease/">the docs for the prerelease (main branch) version</a>. You can also get there from the docs for the latest release by using the website's version switcher. The version switcher is visible in the header of the website when you scroll to the top of any page.</p> <h2>Features</h2> <h3>Compatible with Git</h3> <p>Jujutsu is designed so that the underlying data and storage model is abstract. Today, it features two <a href="https://jj-vcs.github.io/jj/latest/glossary#backend">backends</a>—one of them uses a Git repository for storage, while the other is a native storage backend[^native-backend]. The Git backend uses the <a href="https://libgit2.org/">libgit2</a> C library and the <a href="https://github.com/Byron/gitoxide">gitoxide</a> Rust library.</p> <p>[^native-backend]: At this time, there's practically no reason to use the native backend. The backend exists mainly to make sure that it's possible to eventually add functionality that cannot easily be added to the Git backend.</p> <p>The Git backend is fully featured and maintained, and allows you to use Jujutsu with any Git remote. The commits you create will look like regular Git commits. You can fetch branches from a regular Git remote and push branches to the remote. You can always switch back to Git.</p> <p>Here is how you can explore a GitHub repository with <code>jj</code>.</p> <img src="https://raw.githubusercontent.com/jj-vcs/jj/main/demos/git_compat.png"> <p>You can even have a <a href="https://jj-vcs.github.io/jj/latest/git-compatibility#co-located-jujutsugit-repos">"co-located" local repository</a> where you can use both <code>jj</code> and <code>git</code> commands interchangeably.</p> <h3>The working copy is automatically committed</h3> <p>Jujutsu uses a real commit to represent the working copy. Checking out a commit results a new working-copy commit on top of the target commit. Almost all commands automatically amend the working-copy commit.</p> <p>The working-copy being a commit means that commands never fail because the working copy is dirty (no "error: Your local changes to the following files..."), and there is no need for <code>git stash</code>. Also, because the working copy is a commit, commands work the same way on the working-copy commit as on any other commit, so you can set the commit message before you're done with the changes.</p> <img src="https://raw.githubusercontent.com/jj-vcs/jj/main/demos/working_copy.png"> <h3>The repo is the source of truth</h3> <p>With Jujutsu, the working copy plays a smaller role than with Git. Commands snapshot the working copy before they start, then they update the repo, and then the working copy is updated (if the working-copy commit was modified). Almost all commands (even checkout!) operate on the commits in the repo, leaving the common functionality of snapshotting and updating of the working copy to centralized code. For example, <code>jj restore</code> (similar to <code>git restore</code>) can restore from any commit and into any commit, and <code>jj describe</code> can set the commit message of any commit (defaults to the working-copy commit).</p> <h3>Entire repo is under version control</h3> <p>All operations you perform in the repo are recorded, along with a snapshot of the repo state after the operation. This means that you can easily revert to an earlier repo state, or to simply undo a particular operation (which does not necessarily have to be the most recent operation).</p> <img src="https://raw.githubusercontent.com/jj-vcs/jj/main/demos/operation_log.png"> <h3>Conflicts can be recorded in commits</h3> <p>If an operation results in <a href="https://jj-vcs.github.io/jj/latest/glossary#conflict">conflicts</a>, information about those conflicts will be recorded in the commit(s). The operation will succeed. You can then resolve the conflicts later. One consequence of this design is that there's no need to continue interrupted operations. Instead, you get a single workflow for resolving conflicts, regardless of which command caused them. This design also lets Jujutsu rebase merge commits correctly (unlike both Git and Mercurial).</p> <p>Basic conflict resolution:</p> <img src="https://raw.githubusercontent.com/jj-vcs/jj/main/demos/resolve_conflicts.png"> <p>Juggling conflicts:</p> <img src="https://raw.githubusercontent.com/jj-vcs/jj/main/demos/juggle_conflicts.png"> <h3>Automatic rebase</h3> <p>Whenever you modify a commit, any descendants of the old commit will be rebased onto the new commit. Thanks to the conflict design described above, that can be done even if there are conflicts. Bookmarks pointing to rebased commits will be updated. So will the working copy if it points to a rebased commit.</p> <h3>Comprehensive support for rewriting history</h3> <p>Besides the usual rebase command, there's <code>jj describe</code> for editing the description (commit message) of an arbitrary commit. There's also <code>jj diffedit</code>, which lets you edit the changes in a commit without checking it out. To split a commit into two, use <code>jj split</code>. You can even move part of the changes in a commit to any other commit using <code>jj squash -i --from X --into Y</code>.</p> <h2>Status</h2> <p>The tool is fairly feature-complete, but some important features like (the equivalent of) <code>git blame</code> are not yet supported. There are also several performance bugs. It's likely that workflows and setups different from what the core developers use are not well supported, e.g. there is no native support for email-based workflows.</p> <p>Today, all core developers use <code>jj</code> to work on <code>jj</code>. I (Martin von Zweigbergk) have almost exclusively used <code>jj</code> to develop the project itself since early January 2021. I haven't had to re-clone from source (I don't think I've even had to restore from backup).</p> <p>There <em>will</em> be changes to workflows and backward-incompatible changes to the on-disk formats before version 1.0.0. Even the binary's name may change (i.e. away from <code>jj</code>). For any format changes, we'll try to implement transparent upgrades (as we've done with recent changes), or provide upgrade commands or scripts if requested.</p> <h2>Related work</h2> <p>There are several tools trying to solve similar problems as Jujutsu. See <a href="https://jj-vcs.github.io/jj/latest/related-work">related work</a> for details.</p> <h2>Contributing</h2> <p>We welcome outside contributions, and there's plenty of things to do, so don't be shy. Please ask if you want a pointer on something you can help with, and hopefully we can all figure something out.</p> <p>We do have <a href="https://jj-vcs.github.io/jj/prerelease/contributing/">a few policies and suggestions</a> for contributors. The broad TL;DR:</p> <ul> <li>Bug reports are very welcome!</li> <li>Every commit that lands in the <code>main</code> branch is code reviewed.</li> <li>Please behave yourself, and obey the Community Guidelines.</li> <li>There <strong>is</strong> a mandatory CLA you must agree to. Importantly, it <strong>does not</strong> transfer copyright ownership to Google or anyone else; it simply gives us the right to safely redistribute and use your changes.</li> </ul> <h3>Mandatory Google Disclaimer</h3> <p>I (Martin von Zweigbergk, <a href="mailto:martinvonz@google.com">martinvonz@google.com</a>) started Jujutsu as a hobby project in late 2019, and it has evolved into my full-time project at Google, with several other Googlers (now) assisting development in various capacities. That said, <strong>this is not a Google product</strong>.</p> <h2>License</h2> <p>Jujutsu is available as Open Source Software, under the Apache 2.0 license. See <a href="https://raw.githubusercontent.com/jj-vcs/jj/main/LICENSE">LICENSE</a> for details about copyright and redistribution.</p> \ No newline at end of file diff --git a/sage/daily/index.xml b/sage/daily/index.xml index 6f7170ccd08..c19c09b9a31 100644 --- a/sage/daily/index.xml +++ b/sage/daily/index.xml @@ -1,7 +1,7 @@ GitHub Sage Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:37:02Z + 2024-12-20T01:37:23Z Daily Trending of Sage in GitHub \ No newline at end of file diff --git a/saltstack/daily/index.xml b/saltstack/daily/index.xml index 0c99655c5d8..3e187865dcc 100644 --- a/saltstack/daily/index.xml +++ b/saltstack/daily/index.xml @@ -1,7 +1,7 @@ GitHub SaltStack Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:37:02Z + 2024-12-20T01:37:24Z Daily Trending of SaltStack in GitHub \ No newline at end of file diff --git a/sas/daily/index.xml b/sas/daily/index.xml index 0d7130d39e2..e49c8ec1a0b 100644 --- a/sas/daily/index.xml +++ b/sas/daily/index.xml @@ -1,7 +1,7 @@ GitHub SAS Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:37:02Z + 2024-12-20T01:37:23Z Daily Trending of SAS in GitHub \ No newline at end of file diff --git a/sass/daily/index.xml b/sass/daily/index.xml index 4a2faa1f7d7..b0210857588 100644 --- a/sass/daily/index.xml +++ b/sass/daily/index.xml @@ -1,7 +1,7 @@ GitHub Sass Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:37:08Z + 2024-12-20T01:37:33Z Daily Trending of Sass in GitHub \ No newline at end of file diff --git a/scala/daily/index.xml b/scala/daily/index.xml index b39a4f963fb..68be02d84b1 100644 --- a/scala/daily/index.xml +++ b/scala/daily/index.xml @@ -1,14 +1,7 @@ GitHub Scala Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:37:10Z + 2024-12-20T01:37:36Z Daily Trending of Scala in GitHub - - lynxworld/lynx - 2024-12-19T01:37:10Z - tag:github.com,2024-12-19:/lynxworld/lynx - - <p>Cypher query execution framework</p><hr><p><a name="readme-top"></a></p> <!-- *** Thanks for checking out the Best-README-Template. If you have a suggestion *** that would make this better, please fork the repo and create a pull request *** or simply open an issue with the tag "enhancement". *** Don't forget to give the project a star! *** Thanks again! Now go create something AMAZING! :D --> <!-- PROJECT SHIELDS --> <!-- *** I'm using markdown "reference style" links for readability. *** Reference links are enclosed in brackets [ ] instead of parentheses ( ). *** See the bottom of this document for the declaration of the reference variables *** for contributors-url, forks-url, etc. This is an optional, concise syntax you may use. *** https://www.markdownguide.org/basic-syntax/#reference-style-links --> <p><a href="https://github.com/lynxworld/lynx/contributors"><img src="https://img.shields.io/github/contributors/lynxworld/lynx.svg?style=for-the-badge" alt="Contributors"></a> <a href="https://github.com/lynxworld/lynx/network/members"><img src="https://img.shields.io/github/forks/lynxworld/lynx.svg?style=for-the-badge" alt="Forks"></a> <a href="https://github.com/lynxworld/lynx/stargazers"><img src="https://img.shields.io/github/stars/lynxworld/lynx.svg?style=for-the-badge" alt="Stargazers"></a> <a href="https://github.com/lynxworld/lynx/issues"><img src="https://img.shields.io/github/issues/lynxworld/lynx.svg?style=for-the-badge" alt="Issues"></a> <a href="https://github.com/lynxworld/lynx/raw/master/LICENSE"><img src="https://img.shields.io/github/license/lynxworld/lynx.svg?style=for-the-badge" alt="MIT License"></a></p> <!-- PROJECT LOGO --> <br> <div align="center"> <a href="https://github.com/lynxworld/lynx"> <img src="https://raw.githubusercontent.com/lynxworld/lynx/dev/logo.png" alt="Logo" width="360"> </a> <h3 align="center">Lynx: A Graph Query Framework for Multiple Heterogeneous Data Sources</h3> <p align="center"> Lynx is a general graph query framework to simplify querying graph data by converting complex statements into basic graph operations. Instead of connecting directly to the data sources, Lynx retrieves data through user-implemented interfaces for those graph operations. <br> <!-- <a href="https://github.com/lynxworld/lynx"><strong>Explore the docs »</strong></a> --> <br> <br> <a href="https://www.youtube.com/watch?v=bFhMIkksMl8">View Demo</a> · <a href="https://github.com/lynxworld/lynx/issues">Report Bug</a> · <a href="https://github.com/lynxworld/lynx/issues">Request Feature</a> </p> </div> <!-- TABLE OF CONTENTS --> <details> <summary>Table of Contents</summary> <ol> <li> <a href="https://raw.githubusercontent.com/lynxworld/lynx/dev/#about-the-project">About The Project</a> <ul> <li><a href="https://raw.githubusercontent.com/lynxworld/lynx/dev/#built-with">Built With</a></li> </ul> </li> <li> <a href="https://raw.githubusercontent.com/lynxworld/lynx/dev/#getting-started">Getting Started</a> <ul> <li><a href="https://raw.githubusercontent.com/lynxworld/lynx/dev/#prerequisites">Prerequisites</a></li> <li><a href="https://raw.githubusercontent.com/lynxworld/lynx/dev/#installation">Installation</a></li> </ul> </li> <li><a href="https://raw.githubusercontent.com/lynxworld/lynx/dev/#usage">Usage</a></li> <li><a href="https://raw.githubusercontent.com/lynxworld/lynx/dev/#roadmap">Roadmap</a></li> <li><a href="https://raw.githubusercontent.com/lynxworld/lynx/dev/#contributing">Contributing</a></li> <li><a href="https://raw.githubusercontent.com/lynxworld/lynx/dev/#license">License</a></li> <li><a href="https://raw.githubusercontent.com/lynxworld/lynx/dev/#contact">Contact</a></li> <li><a href="https://raw.githubusercontent.com/lynxworld/lynx/dev/#acknowledgments">Acknowledgments</a></li> </ol> </details> <!-- ABOUT THE PROJECT --> <h2>About The Project</h2> <h3>Introduction</h3> <p align="right">(<a href="https://raw.githubusercontent.com/lynxworld/lynx/dev/#readme-top">back to top</a>)</p> <h3>Architecture and Workflow</h3> <p><img src="https://github.com/lynxworld/lynx/assets/18690803/7ecf0d73-673d-4df1-a17d-f0f8471a2b63" alt="lynx_arch"></p> <!-- GETTING STARTED --> <h2>Getting Started</h2> <h3>Import</h3> <p>Import Lynx by Maven.</p> <pre><code class="language-xml"> &lt;dependency&gt; &lt;groupId&gt;org.grapheco&lt;/groupId&gt; &lt;artifactId&gt;lynx&lt;/artifactId&gt; &lt;version&gt;0.6&lt;/version&gt; &lt;/dependency&gt; </code></pre> <h3>How to use</h3> <ol> <li> <p>Implementation</p> <ul> <li>Implement the required interfaces for your data source</li> <li>Configure the basic settings</li> </ul> </li> <li> <p>Runner</p> <ul> <li>Set up the query environment</li> <li>Execute your graph queries</li> </ul> </li> </ol> <p align="right">(<a href="https://raw.githubusercontent.com/lynxworld/lynx/dev/#readme-top">back to top</a>)</p> <h2>Demo Video</h2> <p>We have a demo video at VLDB2023: <a href="https://www.youtube.com/watch?v=bFhMIkksMl8" title="Lynx"><img src="https://res.cloudinary.com/marcomontalbano/image/upload/v1697510614/video_to_markdown/images/youtube--bFhMIkksMl8-c05b58ac6eb4c4700831b2b3070cd403.jpg" alt="Lynx"></a></p> <!-- Citation --> <h2>Citation</h2> <p>Our paper has been accepted as a demo paper at VLDB2023:</p> <pre><code>@article{shen2023lynx, title={Lynx: A Graph Query Framework for Multiple Heterogeneous Data Sources}, author={Shen, Zhihong and Hu, Chuan and Zhao, Zihao}, journal={Proceedings of the VLDB Endowment}, volume={16}, number={12}, pages={3926--3929}, year={2023}, publisher={VLDB Endowment} } </code></pre> <!-- ACKNOWLEDGMENTS --> <!-- ## Acknowledgments * []() * []() * []() <p align="right">(<a href="#readme-top">back to top</a>)</p> --> <!-- MARKDOWN LINKS & IMAGES --> <!-- https://www.markdownguide.org/basic-syntax/#reference-style-links --> - \ No newline at end of file diff --git a/scaml/daily/index.xml b/scaml/daily/index.xml index 6468ec87ef4..33277fbb85b 100644 --- a/scaml/daily/index.xml +++ b/scaml/daily/index.xml @@ -1,7 +1,7 @@ GitHub Scaml Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:37:08Z + 2024-12-20T01:37:32Z Daily Trending of Scaml in GitHub \ No newline at end of file diff --git a/scheme/daily/index.xml b/scheme/daily/index.xml index b9b768b6f90..a60fb36065f 100644 --- a/scheme/daily/index.xml +++ b/scheme/daily/index.xml @@ -1,7 +1,7 @@ GitHub Scheme Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:37:15Z + 2024-12-20T01:37:39Z Daily Trending of Scheme in GitHub \ No newline at end of file diff --git a/scilab/daily/index.xml b/scilab/daily/index.xml index 50e8ea41bdd..d11082852a0 100644 --- a/scilab/daily/index.xml +++ b/scilab/daily/index.xml @@ -1,7 +1,7 @@ GitHub Scilab Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:37:14Z + 2024-12-20T01:37:39Z Daily Trending of Scilab in GitHub \ No newline at end of file diff --git a/scss/daily/index.xml b/scss/daily/index.xml index 1af58d8e352..ef698ed77fe 100644 --- a/scss/daily/index.xml +++ b/scss/daily/index.xml @@ -1,7 +1,7 @@ GitHub SCSS Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:37:15Z + 2024-12-20T01:37:40Z Daily Trending of SCSS in GitHub \ No newline at end of file diff --git a/sed/daily/index.xml b/sed/daily/index.xml index b1f3ee17fac..5dc3a557d3f 100644 --- a/sed/daily/index.xml +++ b/sed/daily/index.xml @@ -1,7 +1,7 @@ GitHub sed Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:37:14Z + 2024-12-20T01:37:39Z Daily Trending of sed in GitHub \ No newline at end of file diff --git a/self/daily/index.xml b/self/daily/index.xml index 3cb17bb5292..0e60a613f6b 100644 --- a/self/daily/index.xml +++ b/self/daily/index.xml @@ -1,7 +1,7 @@ GitHub Self Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:37:16Z + 2024-12-20T01:37:41Z Daily Trending of Self in GitHub \ No newline at end of file diff --git a/selinux-policy/daily/index.xml b/selinux-policy/daily/index.xml index b8f37367836..e4440d2272f 100644 --- a/selinux-policy/daily/index.xml +++ b/selinux-policy/daily/index.xml @@ -1,7 +1,7 @@ GitHub SELinux Policy Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:37:17Z + 2024-12-20T01:37:41Z Daily Trending of SELinux Policy in GitHub \ No newline at end of file diff --git a/shaderlab/daily/index.xml b/shaderlab/daily/index.xml index eff32d20724..a8607468d49 100644 --- a/shaderlab/daily/index.xml +++ b/shaderlab/daily/index.xml @@ -1,7 +1,7 @@ GitHub ShaderLab Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:37:16Z + 2024-12-20T01:37:41Z Daily Trending of ShaderLab in GitHub \ No newline at end of file diff --git a/shell/daily/index.xml b/shell/daily/index.xml index 31c23bf4e3b..a0d716ddd66 100644 --- a/shell/daily/index.xml +++ b/shell/daily/index.xml @@ -1,7 +1,14 @@ GitHub Shell Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:37:19Z + 2024-12-20T01:37:44Z Daily Trending of Shell in GitHub + + YanG-1989/m3u + 2024-12-20T01:37:44Z + tag:github.com,2024-12-20:/YanG-1989/m3u + + <p>直播源</p><hr><h1>仓库简介</h1> <h4>个人爱好,收集整合!佛系更新…</h4> <ul> <li><a href="https://t.me/Y_anGGGGGG">Telegram 群「传送门」</a></li> </ul> <blockquote> <p>软件下载,资源集合,没其他东西 (后期可能会分享喜欢的东西)...</p> </blockquote> <ul> <li><a href="https://github.com/YanG-1989/m3u/issues">疑难杂症「传送门」</a></li> </ul> <blockquote> <p>有问题请留言,基本上置顶已经解答了所有的问题...</p> </blockquote> <hr> <h3>推荐软件「你说了算」</h3> <ul> <li>IOS系统</li> </ul> <blockquote> <p>APTV「多端」</p> </blockquote> <ul> <li>安卓系统</li> </ul> <blockquote> <p>OK影视「双端」<br> 天光云影「电视端」<br> TiviMate「电视端」<br> OTT「电视端」<br> Televizo「手机端」</p> </blockquote> <ul> <li>Win系统</li> </ul> <blockquote> <p>PotPlayer「电脑端」<br> QMPlay2「电脑端」<br> ZyPlayer「电脑端」</p> </blockquote> <hr> <h3>订阅地址「懒人必备」</h3> <ul> <li><a href="https://bit.ly/IPTV-Gather">Gather.m3u「精简版」</a>---(<a href="https://raw.githubusercontent.com/YanG-1989/m3u/refs/heads/main/hosts.txt">修改 hosts 方法</a>)</li> </ul> <blockquote> <p>订阅地址「GitHub版」,ipv6·源为主...</p> </blockquote> <ul> <li><a href="https://tv.iill.top/m3u/Gather">Gather.m3u「完整版」</a></li> </ul> <blockquote> <p>订阅地址「VPS版」,请勿直接打开...</p> </blockquote> <hr> <h3>直播集合「一切随缘」</h3> <ul> <li><a href="https:///tv.iill.top/m3u/Live">Live.m3u「多平台」</a></li> </ul> <blockquote> <p>直播平台 订阅地址「收集网友喜欢的直播间...」</p> </blockquote> <ul> <li><a href="https://m.iill.top">个性化 M3U 定制</a></li> </ul> <blockquote> <p>定制自己的直播 M3U 列表「分享自己喜欢的主播..」</p> </blockquote> <hr> <h3>垃圾话语录「历史记录」</h3> <ul> <li>2024.12.13</li> </ul> <blockquote> <p>维护 Gather「GitHub」「增加 IPV6·其他源」<br> 维护 Gather「完整版」「修复 IPV6·失效源」</p> </blockquote> <ul> <li>2024.12.2</li> </ul> <blockquote> <p>维护 Gather「修复 •台湾 失效源」</p> </blockquote> <ul> <li>2024.11.30</li> </ul> <blockquote> <p>维护 Live「增加 Twitch 直播代理」</p> </blockquote> <ul> <li>2024.11.25</li> </ul> <blockquote> <p>维护 Gather「完整版」「增加 公益AKTV·源」</p> </blockquote> <ul> <li>2024.11.23</li> </ul> <blockquote> <p>维护 Live「增加 YouTube 限制 / 修复 虎牙 断流」</p> </blockquote> <ul> <li>2024.11.21</li> </ul> <blockquote> <p>维护 Live「修复 YY 直播代理」</p> </blockquote> <ul> <li>2024.11.18</li> </ul> <blockquote> <p>维护 Gather「完整版」「替换 IPV6·源-山东」</p> </blockquote> <hr> <h3>声明「佛曰需要」</h3> <ul> <li>本资料中的所有资源均来自网络,仅作为爱好者的收集和分享之用,版权归原作者或原版权方所有。如有侵权,请联系本人删除。本资料仅供学习与交流使用,请勿用于商业用途。</li> </ul> + \ No newline at end of file diff --git a/shellcheck-config/daily/index.xml b/shellcheck-config/daily/index.xml index fd1e4caee7b..fd480e8cbc0 100644 --- a/shellcheck-config/daily/index.xml +++ b/shellcheck-config/daily/index.xml @@ -1,7 +1,7 @@ GitHub ShellCheck Config Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:37:24Z + 2024-12-20T01:37:49Z Daily Trending of ShellCheck Config in GitHub \ No newline at end of file diff --git a/shellsession/daily/index.xml b/shellsession/daily/index.xml index 6bd29020cb7..ee121e95794 100644 --- a/shellsession/daily/index.xml +++ b/shellsession/daily/index.xml @@ -1,7 +1,7 @@ GitHub ShellSession Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:37:24Z + 2024-12-20T01:37:49Z Daily Trending of ShellSession in GitHub \ No newline at end of file diff --git a/shen/daily/index.xml b/shen/daily/index.xml index 3845a6cd01e..a4b07c4852a 100644 --- a/shen/daily/index.xml +++ b/shen/daily/index.xml @@ -1,7 +1,7 @@ GitHub Shen Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:37:24Z + 2024-12-20T01:37:49Z Daily Trending of Shen in GitHub \ No newline at end of file diff --git a/sieve/daily/index.xml b/sieve/daily/index.xml index 305f2ef1d51..af3279831ac 100644 --- a/sieve/daily/index.xml +++ b/sieve/daily/index.xml @@ -1,7 +1,7 @@ GitHub Sieve Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:37:25Z + 2024-12-20T01:37:49Z Daily Trending of Sieve in GitHub \ No newline at end of file diff --git a/singularity/daily/index.xml b/singularity/daily/index.xml index 006d64b5587..e1f9fb850b7 100644 --- a/singularity/daily/index.xml +++ b/singularity/daily/index.xml @@ -1,7 +1,7 @@ GitHub Singularity Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:37:26Z + 2024-12-20T01:37:51Z Daily Trending of Singularity in GitHub \ No newline at end of file diff --git a/slash/daily/index.xml b/slash/daily/index.xml index d1203417e25..1b35c3fdbf9 100644 --- a/slash/daily/index.xml +++ b/slash/daily/index.xml @@ -1,7 +1,7 @@ GitHub Slash Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:37:25Z + 2024-12-20T01:37:50Z Daily Trending of Slash in GitHub \ No newline at end of file diff --git a/slice/daily/index.xml b/slice/daily/index.xml index 437ef9c1ca7..486386be409 100644 --- a/slice/daily/index.xml +++ b/slice/daily/index.xml @@ -1,7 +1,7 @@ GitHub Slice Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:37:26Z + 2024-12-20T01:37:50Z Daily Trending of Slice in GitHub \ No newline at end of file diff --git a/slim/daily/index.xml b/slim/daily/index.xml index 2a3aadde7a1..4eabab4c6e1 100644 --- a/slim/daily/index.xml +++ b/slim/daily/index.xml @@ -1,7 +1,7 @@ GitHub Slim Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:37:27Z + 2024-12-20T01:37:52Z Daily Trending of Slim in GitHub \ No newline at end of file diff --git a/smali/daily/index.xml b/smali/daily/index.xml index dc0c9cc42f2..515c45333f6 100644 --- a/smali/daily/index.xml +++ b/smali/daily/index.xml @@ -1,7 +1,7 @@ GitHub Smali Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:37:28Z + 2024-12-20T01:37:53Z Daily Trending of Smali in GitHub \ No newline at end of file diff --git a/smalltalk/daily/index.xml b/smalltalk/daily/index.xml index 24a77d3a4b7..329bec886ae 100644 --- a/smalltalk/daily/index.xml +++ b/smalltalk/daily/index.xml @@ -1,7 +1,7 @@ GitHub Smalltalk Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:37:27Z + 2024-12-20T01:37:52Z Daily Trending of Smalltalk in GitHub \ No newline at end of file diff --git a/smarty/daily/index.xml b/smarty/daily/index.xml index 3f169da2dda..d87122b8ed6 100644 --- a/smarty/daily/index.xml +++ b/smarty/daily/index.xml @@ -1,7 +1,7 @@ GitHub Smarty Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:37:31Z + 2024-12-20T01:37:55Z Daily Trending of Smarty in GitHub \ No newline at end of file diff --git a/smpl/daily/index.xml b/smpl/daily/index.xml index 0f8b1b6132b..748867df7d0 100644 --- a/smpl/daily/index.xml +++ b/smpl/daily/index.xml @@ -1,7 +1,7 @@ GitHub SmPL Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:37:29Z + 2024-12-20T01:37:54Z Daily Trending of SmPL in GitHub \ No newline at end of file diff --git a/smt/daily/index.xml b/smt/daily/index.xml index 58dacb2bdec..2cfa4097a23 100644 --- a/smt/daily/index.xml +++ b/smt/daily/index.xml @@ -1,7 +1,7 @@ GitHub SMT Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:37:29Z + 2024-12-20T01:37:54Z Daily Trending of SMT in GitHub \ No newline at end of file diff --git a/solidity/daily/index.xml b/solidity/daily/index.xml index 981265717fa..dac1036b243 100644 --- a/solidity/daily/index.xml +++ b/solidity/daily/index.xml @@ -1,7 +1,7 @@ GitHub Solidity Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:37:33Z + 2024-12-20T01:37:57Z Daily Trending of Solidity in GitHub \ No newline at end of file diff --git a/soong/daily/index.xml b/soong/daily/index.xml index 1578e62dd99..48f9bb53ee3 100644 --- a/soong/daily/index.xml +++ b/soong/daily/index.xml @@ -1,7 +1,7 @@ GitHub Soong Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:37:33Z + 2024-12-20T01:37:56Z Daily Trending of Soong in GitHub \ No newline at end of file diff --git a/sourcepawn/daily/index.xml b/sourcepawn/daily/index.xml index 179be4172fe..871ab6e6aa4 100644 --- a/sourcepawn/daily/index.xml +++ b/sourcepawn/daily/index.xml @@ -1,7 +1,7 @@ GitHub SourcePawn Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:37:32Z + 2024-12-20T01:37:56Z Daily Trending of SourcePawn in GitHub \ No newline at end of file diff --git a/sparql/daily/index.xml b/sparql/daily/index.xml index 5e5a55ce369..d822a4eb5c6 100644 --- a/sparql/daily/index.xml +++ b/sparql/daily/index.xml @@ -1,7 +1,7 @@ GitHub SPARQL Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:37:34Z + 2024-12-20T01:37:58Z Daily Trending of SPARQL in GitHub \ No newline at end of file diff --git a/spline-font-database/daily/index.xml b/spline-font-database/daily/index.xml index 0f4041781d2..2013f4c0a36 100644 --- a/spline-font-database/daily/index.xml +++ b/spline-font-database/daily/index.xml @@ -1,7 +1,7 @@ GitHub Spline Font Database Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:37:34Z + 2024-12-20T01:37:58Z Daily Trending of Spline Font Database in GitHub \ No newline at end of file diff --git a/sqf/daily/index.xml b/sqf/daily/index.xml index ec9a8aab341..fc2ac79873d 100644 --- a/sqf/daily/index.xml +++ b/sqf/daily/index.xml @@ -1,7 +1,7 @@ GitHub SQF Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:37:35Z + 2024-12-20T01:37:59Z Daily Trending of SQF in GitHub \ No newline at end of file diff --git a/sql/daily/index.xml b/sql/daily/index.xml index 5462a0f3c99..8f645d4e7fd 100644 --- a/sql/daily/index.xml +++ b/sql/daily/index.xml @@ -1,7 +1,7 @@ GitHub SQL Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:37:35Z + 2024-12-20T01:37:58Z Daily Trending of SQL in GitHub \ No newline at end of file diff --git a/sqlpl/daily/index.xml b/sqlpl/daily/index.xml index 67d9148ec6d..9b6eb23d066 100644 --- a/sqlpl/daily/index.xml +++ b/sqlpl/daily/index.xml @@ -1,7 +1,7 @@ GitHub SQLPL Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:37:36Z + 2024-12-20T01:38:00Z Daily Trending of SQLPL in GitHub \ No newline at end of file diff --git a/squirrel/daily/index.xml b/squirrel/daily/index.xml index 2a8e1116256..10e00cd9518 100644 --- a/squirrel/daily/index.xml +++ b/squirrel/daily/index.xml @@ -1,7 +1,7 @@ GitHub Squirrel Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:37:36Z + 2024-12-20T01:38:00Z Daily Trending of Squirrel in GitHub \ No newline at end of file diff --git a/srecode-template/daily/index.xml b/srecode-template/daily/index.xml index 0b7f2da9f02..77aacc31c9b 100644 --- a/srecode-template/daily/index.xml +++ b/srecode-template/daily/index.xml @@ -1,7 +1,7 @@ GitHub SRecode Template Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:37:37Z + 2024-12-20T01:38:00Z Daily Trending of SRecode Template in GitHub \ No newline at end of file diff --git a/ssh-config/daily/index.xml b/ssh-config/daily/index.xml index cbb3a2f9471..76dd6e77bfe 100644 --- a/ssh-config/daily/index.xml +++ b/ssh-config/daily/index.xml @@ -1,7 +1,7 @@ GitHub SSH Config Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:37:36Z + 2024-12-20T01:37:59Z Daily Trending of SSH Config in GitHub \ No newline at end of file diff --git a/stan/daily/index.xml b/stan/daily/index.xml index f020e0b06a5..9a0552ae889 100644 --- a/stan/daily/index.xml +++ b/stan/daily/index.xml @@ -1,7 +1,7 @@ GitHub Stan Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:37:38Z + 2024-12-20T01:38:01Z Daily Trending of Stan in GitHub \ No newline at end of file diff --git a/standard-ml/daily/index.xml b/standard-ml/daily/index.xml index b4edad874cf..79695a1fcee 100644 --- a/standard-ml/daily/index.xml +++ b/standard-ml/daily/index.xml @@ -1,7 +1,7 @@ GitHub Standard ML Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:37:37Z + 2024-12-20T01:38:02Z Daily Trending of Standard ML in GitHub \ No newline at end of file diff --git a/starlark/daily/index.xml b/starlark/daily/index.xml index b202ace578b..263898add76 100644 --- a/starlark/daily/index.xml +++ b/starlark/daily/index.xml @@ -1,7 +1,7 @@ GitHub Starlark Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:37:39Z + 2024-12-20T01:38:02Z Daily Trending of Starlark in GitHub \ No newline at end of file diff --git a/stata/daily/index.xml b/stata/daily/index.xml index 35fa35ba97c..4c570551589 100644 --- a/stata/daily/index.xml +++ b/stata/daily/index.xml @@ -1,7 +1,7 @@ GitHub Stata Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:37:40Z + 2024-12-20T01:38:04Z Daily Trending of Stata in GitHub \ No newline at end of file diff --git a/ston/daily/index.xml b/ston/daily/index.xml index e52e4bea172..e79330f2cdc 100644 --- a/ston/daily/index.xml +++ b/ston/daily/index.xml @@ -1,7 +1,7 @@ GitHub STON Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:37:40Z + 2024-12-20T01:38:03Z Daily Trending of STON in GitHub \ No newline at end of file diff --git a/stringtemplate/daily/index.xml b/stringtemplate/daily/index.xml index d062b279df1..35cdce72300 100644 --- a/stringtemplate/daily/index.xml +++ b/stringtemplate/daily/index.xml @@ -1,7 +1,7 @@ GitHub StringTemplate Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:37:40Z + 2024-12-20T01:38:03Z Daily Trending of StringTemplate in GitHub \ No newline at end of file diff --git a/stylus/daily/index.xml b/stylus/daily/index.xml index c021e032107..8f555e55316 100644 --- a/stylus/daily/index.xml +++ b/stylus/daily/index.xml @@ -1,7 +1,7 @@ GitHub Stylus Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:37:42Z + 2024-12-20T01:38:05Z Daily Trending of Stylus in GitHub \ No newline at end of file diff --git a/subrip-text/daily/index.xml b/subrip-text/daily/index.xml index 822a985c9f5..a23fe57a4a5 100644 --- a/subrip-text/daily/index.xml +++ b/subrip-text/daily/index.xml @@ -1,7 +1,7 @@ GitHub SubRip Text Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:37:41Z + 2024-12-20T01:38:05Z Daily Trending of SubRip Text in GitHub \ No newline at end of file diff --git a/sugarss/daily/index.xml b/sugarss/daily/index.xml index 6cfee01a23f..ae3d985a2a6 100644 --- a/sugarss/daily/index.xml +++ b/sugarss/daily/index.xml @@ -1,7 +1,7 @@ GitHub SugarSS Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:37:41Z + 2024-12-20T01:38:05Z Daily Trending of SugarSS in GitHub \ No newline at end of file diff --git a/supercollider/daily/index.xml b/supercollider/daily/index.xml index c13f6261106..b0653c19370 100644 --- a/supercollider/daily/index.xml +++ b/supercollider/daily/index.xml @@ -1,7 +1,7 @@ GitHub SuperCollider Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:37:42Z + 2024-12-20T01:38:06Z Daily Trending of SuperCollider in GitHub \ No newline at end of file diff --git a/svelte/daily/index.xml b/svelte/daily/index.xml index a8ba89538bb..407ac1d976b 100644 --- a/svelte/daily/index.xml +++ b/svelte/daily/index.xml @@ -1,14 +1,7 @@ GitHub Svelte Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:37:44Z + 2024-12-20T01:38:08Z Daily Trending of Svelte in GitHub - - classroomio/classroomio - 2024-12-19T01:37:44Z - tag:github.com,2024-12-19:/classroomio/classroomio - - <p>The Open Source Education Platform. A Simple and Beautiful Alternative to Moodle LMS, EdX, Thinkific and Teachable</p><hr> - \ No newline at end of file diff --git a/svg/daily/index.xml b/svg/daily/index.xml index 2fba2e893d6..8b44606fc3b 100644 --- a/svg/daily/index.xml +++ b/svg/daily/index.xml @@ -1,7 +1,7 @@ GitHub SVG Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:37:44Z + 2024-12-20T01:38:08Z Daily Trending of SVG in GitHub \ No newline at end of file diff --git a/swift/daily/index.xml b/swift/daily/index.xml index a4c099b6676..c4c49ecdd0f 100644 --- a/swift/daily/index.xml +++ b/swift/daily/index.xml @@ -1,7 +1,14 @@ GitHub Swift Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:37:48Z + 2024-12-20T01:38:11Z Daily Trending of Swift in GitHub + + github/CopilotForXcode + 2024-12-20T01:38:11Z + tag:github.com,2024-12-20:/github/CopilotForXcode + + <p>Xcode extension for GitHub Copilot</p><hr><h1><img align="center" height="70" src="https://raw.githubusercontent.com/github/CopilotForXcode/main/Docs/AppIcon.png"> GitHub Copilot for Xcode</h1> <img alt="Demo of GitHub Copilot for Xcode" src="https://raw.githubusercontent.com/github/CopilotForXcode/main/Docs/demo.gif" width="800"> <p><a href="https://github.com/features/copilot">GitHub Copilot</a> is an AI pair programmer tool that helps you write code faster and smarter. Copilot for Xcode is an Xcode extension that provides inline coding suggestions as you type.</p> <h2>Beta Preview Policy</h2> <p>Use of the GitHub Copilot Xcode Extension is subject to <a href="https://docs.github.com/en/site-policy/github-terms/github-pre-release-license-terms">GitHub's Pre-Release Terms</a>. We want to remind you that:</p> <blockquote> <p>Beta Previews may not be supported or may change at any time. You may receive confidential information through those programs that must remain confidential while the program is private. We'd love your feedback to make our Beta Previews better.</p> </blockquote> <h2>Requirements</h2> <ul> <li>macOS 12+</li> <li>Xcode 8+</li> <li>A GitHub Copilot subscription. To learn more, visit <a href="https://github.com/features/copilot">https://github.com/features/copilot</a>.</li> </ul> <h2>Getting Started</h2> <ol> <li> <p>Install via <a href="https://brew.sh/">Homebrew</a>:</p> <pre><code class="language-sh">brew install --cask github-copilot-for-xcode </code></pre> <p>Or download the <code>dmg</code> from <a href="https://github.com/github/CopilotForXcode/releases/latest/download/GitHubCopilotForXcode.dmg">the latest release</a>. Drag <code>GitHub Copilot for Xcode</code> into the <code>Applications</code> folder:</p> <p align="center"> <img alt="Screenshot of opened dmg" src="https://raw.githubusercontent.com/github/CopilotForXcode/main/Docs/dmg-open.png" width="512"> </p> <p>Updates can be downloaded and installed by the app.</p> </li> <li> <p>A background item will be added to enable Copilot to start when Xcode is opened.</p> <p align="center"> <img alt="Screenshot of background item" src="https://raw.githubusercontent.com/github/CopilotForXcode/main/Docs/background-item.png" width="370"> </p> </li> <li> <p>Two permissions are required: <code>Accessibility</code> and <code>Xcode Source Editor Extension</code>. For more on why these permissions are required see <a href="https://raw.githubusercontent.com/github/CopilotForXcode/main/TROUBLESHOOTING.md">TROUBLESHOOTING.md</a>.</p> <p>The first time the application is run the <code>Accessibility</code> permission should be requested:</p> <p align="center"> <img alt="Screenshot of accessibility permission request" src="https://raw.githubusercontent.com/github/CopilotForXcode/main/Docs/accessibility-permission-request.png" width="529"> </p> <p>The <code>Xcode Source Editor Extension</code> permission needs to be enabled manually. Click <code>Extension Permission</code> from the <code>Copilot for Xcode</code> settings to open the System Preferences to the <code>Extensions</code> panel. Select <code>Xcode Source Editor</code> and enable <code>GitHub Copilot</code>:</p> <p align="center"> <img alt="Screenshot of extension permission" src="https://raw.githubusercontent.com/github/CopilotForXcode/main/Docs/extension-permission.png" width="582"> </p> </li> <li> <p>After granting the extension permission, please restart Xcode to ensure the <code>Github Copilot</code> menu is available and not disabled under the Xcode <code>Editor</code> menu. <br></p> <p align="center"> <img alt="Screenshot of Xcode Editor GitHub Copilot menu item" src="https://raw.githubusercontent.com/github/CopilotForXcode/main/Docs/xcode-menu.png" width="648"> </p> <p>Keyboard shortcuts can be set for all menu items in the <code>Key Bindings</code> section of Xcode preferences.</p> </li> <li> <p>To sign into GitHub Copilot, click the <code>Sign in</code> button in the settings application. This will open a browser window and copy a code to the clipboard. Paste the code into the GitHub login page and authorize the application.</p> <p align="center"> <img alt="Screenshot of sign-in popup" src="https://raw.githubusercontent.com/github/CopilotForXcode/main/Docs/device-code.png" width="372"> </p> </li> <li> <p>To install updates, click <code>Check for Updates</code> from the menu item or in the settings application.</p> <p>After installing a new version, Xcode must be restarted to use the new version correctly.</p> <p>New versions can also be installed from <code>dmg</code> files downloaded from the releases page. When installing a new version via <code>dmg</code>, the application must be run manually the first time to accept the downloaded from the internet warning.</p> </li> <li> <p>To avoid confusion, we recommend disabling <code>Predictive code completion</code> under <code>Xcode</code> &gt; <code>Preferences</code> &gt; <code>Text Editing</code> &gt; <code>Editing</code>.</p> </li> <li> <p>Press <code>tab</code> to accept the first line of a suggestion, hold <code>option</code> to view the full suggestion, and press <code>option</code> + <code>tab</code> to accept the full suggestion.</p> <p align="center"> <img alt="Screenshot of welcome screen" src="https://raw.githubusercontent.com/github/CopilotForXcode/main/Docs/welcome.png" width="672"> </p> </li> </ol> <h2>License</h2> <p>This project is licensed under the terms of the MIT open source license. Please refer to <a href="https://raw.githubusercontent.com/github/CopilotForXcode/main/LICENSE.txt">LICENSE.txt</a> for the full terms.</p> <h2>Privacy</h2> <p>We follow responsible practices in accordance with our <a href="https://docs.github.com/en/site-policy/privacy-policies/github-privacy-statement">Privacy Statement</a>.</p> <p>To get the latest security fixes, please use the latest version of the GitHub Copilot for Xcode.</p> <h2>Support</h2> <p>We’d love to get your help in making GitHub Copilot better! If you have feedback or encounter any problems, please reach out on our <a href="https://github.com/orgs/community/discussions/categories/copilot">Feedback forum</a>.</p> <h2>Acknowledgements</h2> <p>Thank you to @intitni for creating the original project that this is based on.</p> <p>Attributions can be found under About when running the app or in <a href="https://raw.githubusercontent.com/github/CopilotForXcode/main/Copilot%20for%20Xcode/Credits.rtf">Credits.rtf</a>.</p> + \ No newline at end of file diff --git a/swig/daily/index.xml b/swig/daily/index.xml index abab9cc7043..bfa5d89ed1f 100644 --- a/swig/daily/index.xml +++ b/swig/daily/index.xml @@ -1,7 +1,7 @@ GitHub SWIG Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:37:45Z + 2024-12-20T01:38:09Z Daily Trending of SWIG in GitHub \ No newline at end of file diff --git a/systemverilog/daily/index.xml b/systemverilog/daily/index.xml index d1692716475..d8e80c872e0 100644 --- a/systemverilog/daily/index.xml +++ b/systemverilog/daily/index.xml @@ -1,7 +1,7 @@ GitHub SystemVerilog Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:37:46Z + 2024-12-20T01:38:10Z Daily Trending of SystemVerilog in GitHub \ No newline at end of file diff --git a/talon/daily/index.xml b/talon/daily/index.xml index 8a182d03769..6e4739cc9d2 100644 --- a/talon/daily/index.xml +++ b/talon/daily/index.xml @@ -1,7 +1,7 @@ GitHub Talon Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:37:56Z + 2024-12-20T01:38:19Z Daily Trending of Talon in GitHub \ No newline at end of file diff --git a/tcl/daily/index.xml b/tcl/daily/index.xml index 3d399d80a89..0d70c7dfca8 100644 --- a/tcl/daily/index.xml +++ b/tcl/daily/index.xml @@ -1,7 +1,7 @@ GitHub Tcl Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:37:56Z + 2024-12-20T01:38:20Z Daily Trending of Tcl in GitHub \ No newline at end of file diff --git a/tcsh/daily/index.xml b/tcsh/daily/index.xml index c4483f1000b..11511bea348 100644 --- a/tcsh/daily/index.xml +++ b/tcsh/daily/index.xml @@ -1,7 +1,7 @@ GitHub Tcsh Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:37:55Z + 2024-12-20T01:38:20Z Daily Trending of Tcsh in GitHub \ No newline at end of file diff --git a/tea/daily/index.xml b/tea/daily/index.xml index 3bfcfad4110..f1b333a9320 100644 --- a/tea/daily/index.xml +++ b/tea/daily/index.xml @@ -1,7 +1,7 @@ GitHub Tea Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:37:55Z + 2024-12-20T01:38:21Z Daily Trending of Tea in GitHub \ No newline at end of file diff --git a/terra/daily/index.xml b/terra/daily/index.xml index 48e2cb12398..eb0edf2fa46 100644 --- a/terra/daily/index.xml +++ b/terra/daily/index.xml @@ -1,7 +1,7 @@ GitHub Terra Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:37:57Z + 2024-12-20T01:38:22Z Daily Trending of Terra in GitHub \ No newline at end of file diff --git a/tex/daily/index.xml b/tex/daily/index.xml index a13d03a12c0..66c52ec8508 100644 --- a/tex/daily/index.xml +++ b/tex/daily/index.xml @@ -1,14 +1,7 @@ GitHub TeX Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:37:59Z + 2024-12-20T01:38:23Z Daily Trending of TeX in GitHub - - circuitikz/circuitikz - 2024-12-19T01:37:59Z - tag:github.com,2024-12-19:/circuitikz/circuitikz - - <p>CircuiTikZ TeX/LaTeX package for drawing circuits</p><hr><h1>circuitikz</h1> <p>This package provides a set of macros on top of <a href="https://github.com/pgf-tikz/pgf">Ti<em>k</em>Z</a> for naturally typesetting electrical and electronic networks.</p> <p>It was born mainly for writing Massimo Redaelli's exercise book and exams sheets for the Elettrotecnica courses at Politecnico di Milano, Italy. He wanted a tool that was easy to use, with a lean syntax, native to LaTeX, and supporting directly PDF output format.</p> <p><img src="https://raw.githubusercontent.com/circuitikz/circuitikz/master/example_ctikz.png" alt="examle of a complex circuit"></p> <hr> <h2>Requirements</h2> <p><code>circuitikz</code> is included with the most common LaTeX systems, so it should work out of the box. Anyway, the main dependency is on Ti<em>k</em>Z/PGF, <code>xstring</code> and <code>siunitx</code> (if used):</p> <ul> <li>Tikz/PGF graphics library, version 3.1.5b</li> <li><code>xstring</code> newer than 2009/03/13</li> <li><code>siunitx</code>, better if <code>v2</code> or newer.</li> </ul> <h2>Installation</h2> <p>The stable version is available on <a href="https://ctan.org/pkg/circuitikz?lang=en">CTAN</a> and is included within the major latex distributions(Texlive, Miktex). If you want to test the latest version, have a look at <a href="http://circuitikz.github.io/circuitikz/">http://circuitikz.github.io/circuitikz/</a>. There you can find the latest git-version as a single file, just copy it to your project or to your local tex tree.</p> <h2>Usage</h2> <h3>Stable version</h3> <p>Just place</p> <pre><code class="language-latex"> \usepackage[RPvoltages, siunitx]{circuitikz}% or your preferred options </code></pre> <p>Be sure to check the options you like — you should at least state one of the "voltage direction" ones, like <code>RPvoltages</code> shown above, or the usage of <code>siunitx</code> special syntax. Be sure to check the relevant sections in the manual.</p> <p>For ConTeXt, you should be able to use</p> <pre><code class="language-latex"> \usemodule[circuitikz] </code></pre> <p>in the preamble and compile away, both with PS and PDF target output.</p> <p>It is higly recommended to go through the <a href="https://circuitikz.github.io/circuitikz/circuitikzmanualgit.pdf#c">tutorials in the manual</a> and to learn a bit of Ti<em>k</em>Z before for example, go through at least the <a href="https://tikz.dev/tutorial">basic Ti<em>k</em>Z one</a>, but there are more suggestions in the documentation.</p> <p><em>Notice</em> that for the time being, due to <a href="https://bugs.launchpad.net/ubuntu/+source/context/+bug/2058409">this bug</a>, automatic (CI) checks for ConTeXt compatibility is disabled. I (Romano) am still checking it at home, but I am not able to have it integrated in the CI.</p> <h3>Development or newer version</h3> <p>If you want to use the git version, go to the <a href="https://circuitikz.github.io/circuitikz/">GitHub page for the project</a>, download the last version (or the one you want to use) — it's the links called "download the latest version in a single file". You will have a file called <code>circuitikzgit.sty</code> that you should put somewhere in your LaTeX input path; the best place is in the same directory where your main file live. Then, just use it instead of the normal one:</p> <pre><code class="language-latex"> \usepackage[siunitx, RPvoltages]{circuitikzgit} </code></pre> <p>or, for ConTeXt,</p> <pre><code class="language-latex"> \usemodule[circuitikzgit] </code></pre> <p>Be aware that options and style files can (and do) change between versions, so you have to check them manually, and that the recommended version is always the one that come with your TeX/LaTeX distribution; use this trick only if you <em>really</em> need a newer version!</p> <h3>Older version</h3> <p>There is a roll-back mechanism in the package, that let you use older versions if you need them; the details are in the manual, look at the section named <em>"Incompatibilities between versions"</em> for details.</p> <p>You have all the code and the corresponding manual available in the <a href="http://circuitikz.github.io/circuitikz/">in the github page</a> of the project, since version 0.6 onward.</p> <h2>More Information and documentation</h2> <p>More Information can be found in the manual; you can find a compiled version for the "bleeding edge" version <a href="http://circuitikz.github.io/circuitikz/circuitikzmanualgit.pdf">in the github page</a> and for the various releases in the <a href="https://github.com/circuitikz/circuitikz/releases">GitHub releases</a>, where you can find the manual in the assets of each release (since 0.8.3, anyways).</p> <h2>Contact the authors</h2> <p>For bug reports and enhacement suggestions, the preferred way is to use <a href="https://github.com/circuitikz/circuitikz/issues">the issue page on the project</a>. Please be ready to provide an example code showing the bug, if any.</p> <p>Please <strong>do not use the issue page for generic help on how to use the package</strong>. The manual has a (growing) set of examples; also the questions tagged <code>circuitikz</code> on <a href="https://tex.stackexchange.com/">https://tex.stackexchange.com/</a> are often answered promptly. You can also find help on <a href="https://app.element.io/#/room/%23pgf-tikz:matrix.org">matrix</a> and on <a href="https://topanswers.xyz/tex">TopTeX</a>.</p> <p>Since more or less version 0.9.0 (May 2019) Romano is the main maintainer of the project. You can contact the authors via GitHub (preferred) or via their email addresses:</p> <ul> <li><a href="https://github.com/circuitikz/circuitikz">GitHub main project page</a></li> <li>Massimo Redaelli (<a href="mailto:m.redaelli@gmail.com">m.redaelli@gmail.com</a>)</li> <li>Stefan Lindner (<a href="mailto:stefan.lindner@fau.de">stefan.lindner@fau.de</a>)</li> <li>Stefan Erhardt (<a href="mailto:stefan.erhardt@fau.de">stefan.erhardt@fau.de</a>)</li> <li>Romano Giannetti (<a href="mailto:romano.giannetti@gmail.com">romano.giannetti@gmail.com</a>)</li> </ul> <hr> <h3>License and copyright</h3> <p>This file may be distributed and/or modified</p> <ol> <li>under the LaTeX Project Public License and/or</li> <li>under the GNU Public License.</li> </ol> <p>Copyright 2018-2024 by Romano Giannetti</p> <p>Copyright 2015-2024 by Stefan Lindner</p> <p>Copyright 2013-2024 by Stefan Erhardt</p> <p>Copyright 2007-2024 by Massimo Redaelli</p> - \ No newline at end of file diff --git a/texinfo/daily/index.xml b/texinfo/daily/index.xml index c9ab28fde40..f4048f6c6d3 100644 --- a/texinfo/daily/index.xml +++ b/texinfo/daily/index.xml @@ -1,7 +1,7 @@ GitHub Texinfo Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:38:02Z + 2024-12-20T01:38:27Z Daily Trending of Texinfo in GitHub \ No newline at end of file diff --git a/text/daily/index.xml b/text/daily/index.xml index 2a30f4a27a1..8c3b10ef6db 100644 --- a/text/daily/index.xml +++ b/text/daily/index.xml @@ -1,7 +1,7 @@ GitHub Text Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:38:02Z + 2024-12-20T01:38:26Z Daily Trending of Text in GitHub \ No newline at end of file diff --git a/textile/daily/index.xml b/textile/daily/index.xml index 5d06a322c44..70c9e7cefe3 100644 --- a/textile/daily/index.xml +++ b/textile/daily/index.xml @@ -1,7 +1,7 @@ GitHub Textile Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:38:02Z + 2024-12-20T01:38:27Z Daily Trending of Textile in GitHub \ No newline at end of file diff --git a/textmate-properties/daily/index.xml b/textmate-properties/daily/index.xml index 1e4f6311214..e9a1498c438 100644 --- a/textmate-properties/daily/index.xml +++ b/textmate-properties/daily/index.xml @@ -1,7 +1,7 @@ GitHub TextMate Properties Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:38:03Z + 2024-12-20T01:38:29Z Daily Trending of TextMate Properties in GitHub \ No newline at end of file diff --git a/thrift/daily/index.xml b/thrift/daily/index.xml index b71ecda03fc..31523ca1846 100644 --- a/thrift/daily/index.xml +++ b/thrift/daily/index.xml @@ -1,7 +1,7 @@ GitHub Thrift Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:38:04Z + 2024-12-20T01:38:29Z Daily Trending of Thrift in GitHub \ No newline at end of file diff --git a/ti-program/daily/index.xml b/ti-program/daily/index.xml index 20e974657a7..a622c3f519d 100644 --- a/ti-program/daily/index.xml +++ b/ti-program/daily/index.xml @@ -1,7 +1,7 @@ GitHub TI Program Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:38:04Z + 2024-12-20T01:38:29Z Daily Trending of TI Program in GitHub \ No newline at end of file diff --git a/tla/daily/index.xml b/tla/daily/index.xml index fec70151606..2db2f6b93ff 100644 --- a/tla/daily/index.xml +++ b/tla/daily/index.xml @@ -1,7 +1,7 @@ GitHub TLA Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:38:05Z + 2024-12-20T01:38:30Z Daily Trending of TLA in GitHub \ No newline at end of file diff --git a/toml/daily/index.xml b/toml/daily/index.xml index 2c4080684b6..cede104e903 100644 --- a/toml/daily/index.xml +++ b/toml/daily/index.xml @@ -1,7 +1,7 @@ GitHub TOML Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:38:05Z + 2024-12-20T01:38:30Z Daily Trending of TOML in GitHub \ No newline at end of file diff --git a/tsql/daily/index.xml b/tsql/daily/index.xml index 8f550e50da9..714fc57cbcd 100644 --- a/tsql/daily/index.xml +++ b/tsql/daily/index.xml @@ -1,7 +1,7 @@ GitHub TSQL Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:38:07Z + 2024-12-20T01:38:32Z Daily Trending of TSQL in GitHub \ No newline at end of file diff --git a/tsv/daily/index.xml b/tsv/daily/index.xml index bf0921ef864..7baf64b62cf 100644 --- a/tsv/daily/index.xml +++ b/tsv/daily/index.xml @@ -1,7 +1,7 @@ GitHub TSV Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:38:06Z + 2024-12-20T01:38:32Z Daily Trending of TSV in GitHub \ No newline at end of file diff --git a/tsx/daily/index.xml b/tsx/daily/index.xml index b94684da19b..83f49a19005 100644 --- a/tsx/daily/index.xml +++ b/tsx/daily/index.xml @@ -1,7 +1,7 @@ GitHub TSX Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:38:07Z + 2024-12-20T01:38:31Z Daily Trending of TSX in GitHub \ No newline at end of file diff --git a/turing/daily/index.xml b/turing/daily/index.xml index 0d6bea7ee9c..80d40b163f4 100644 --- a/turing/daily/index.xml +++ b/turing/daily/index.xml @@ -1,7 +1,7 @@ GitHub Turing Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:38:07Z + 2024-12-20T01:38:32Z Daily Trending of Turing in GitHub \ No newline at end of file diff --git a/turtle/daily/index.xml b/turtle/daily/index.xml index c907ed8bff8..2073929aa0c 100644 --- a/turtle/daily/index.xml +++ b/turtle/daily/index.xml @@ -1,7 +1,7 @@ GitHub Turtle Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:38:08Z + 2024-12-20T01:38:34Z Daily Trending of Turtle in GitHub \ No newline at end of file diff --git a/twig/daily/index.xml b/twig/daily/index.xml index 7dd1dd2f702..5894cc29c92 100644 --- a/twig/daily/index.xml +++ b/twig/daily/index.xml @@ -1,7 +1,7 @@ GitHub Twig Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:38:09Z + 2024-12-20T01:38:34Z Daily Trending of Twig in GitHub \ No newline at end of file diff --git a/txl/daily/index.xml b/txl/daily/index.xml index 5aaa46349e2..b9ff893cc55 100644 --- a/txl/daily/index.xml +++ b/txl/daily/index.xml @@ -1,7 +1,7 @@ GitHub TXL Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:38:08Z + 2024-12-20T01:38:33Z Daily Trending of TXL in GitHub \ No newline at end of file diff --git a/type-language/daily/index.xml b/type-language/daily/index.xml index d0d7e05ca00..4cbd30af3d0 100644 --- a/type-language/daily/index.xml +++ b/type-language/daily/index.xml @@ -1,7 +1,7 @@ GitHub Type Language Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:38:08Z + 2024-12-20T01:38:33Z Daily Trending of Type Language in GitHub \ No newline at end of file diff --git a/typescript/daily/index.xml b/typescript/daily/index.xml index 0ae91d67ce4..c11492b1b70 100644 --- a/typescript/daily/index.xml +++ b/typescript/daily/index.xml @@ -1,14 +1,28 @@ GitHub TypeScript Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:38:12Z + 2024-12-20T01:38:36Z Daily Trending of TypeScript in GitHub - zaidmukaddam/miniperplx - 2024-12-19T01:38:12Z - tag:github.com,2024-12-19:/zaidmukaddam/miniperplx - - <p>A minimalistic AI-powered search engine that helps you find information on the internet. Powered by Vercel AI SDK! Search with models like GPT-4o mini, GPT-4o and Claude 3.5 Sonnet(New)!</p><hr><h1>MiniPerplx</h1> <p><img src="https://raw.githubusercontent.com/zaidmukaddam/miniperplx/main/app/opengraph-image.png" alt="MiniPerplx"></p> <p>A minimalistic AI-powered search engine that helps you find information on the internet.</p> <h2>ProductHunt Launch</h2> <p>Upvote MiniPerplx on ProductHunt to show your support!</p> <p><a href="https://www.producthunt.com/posts/miniperplx?embed=true&amp;utm_source=badge-featured&amp;utm_medium=badge&amp;utm_souce=badge-miniperplx" target="_blank"><img src="https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=481378&amp;theme=light" alt="MiniPerplx - A minimalistic AI-powered search engine. | Product Hunt" style="width: 250px; height: 54px;" width="250" height="54"></a></p> <h2>Features</h2> <ul> <li><strong>AI-powered search</strong>: Get answers to your questions using Anthropic's Models.</li> <li><strong>Web search</strong>: Search the web using Tavily's API.</li> <li><strong>URL Specific search</strong>: Get information from a specific URL.</li> <li><strong>Weather</strong>: Get the current weather for any location using OpenWeather's API.</li> <li><strong>Programming</strong>: Run code snippets in multiple languages using E2B's API.</li> <li><strong>Maps</strong>: Get the location of any place using Google Maps API.</li> <li><strong>Results Overview</strong>: Get a quick overview of the results from different providers.</li> <li><strong>Translation</strong>: Translate text to different languages using Microsoft's Translator API.</li> </ul> <h2>Built with</h2> <ul> <li><a href="https://nextjs.org/">Next.js</a></li> <li><a href="https://tailwindcss.com/">Tailwind CSS</a></li> <li><a href="https://sdk.vercel.ai/docs">Vercel AI SDK</a></li> <li><a href="https://ui.shadcn.com/">Shadcn/UI</a></li> <li><a href="https://tavily.com/">Tavily</a></li> <li><a href="https://openweathermap.org/">OpenWeather</a></li> <li><a href="https://e2b.dev/">E2B</a></li> <li><a href="https://developers.google.com/maps">Google Maps</a></li> </ul> <h2>LLM used</h2> <ul> <li><a href="https://openai.com/index/gpt-4o-mini-advancing-cost-efficient-intelligence/">OpenAI's GPT 4o mini</a></li> <li><a href="https://www.anthropic.com/news/claude-3-5-sonnet/">Anthropic's Claude 3.5 Sonnet</a></li> <li><a href="https://openai.com/index/openai-o1-mini-advancing-cost-efficient-reasoning/">OpenAI's o1-mini</a> powered by <a href="https://openrouter.ai/models/openai/o1-mini">OpenRouter</a></li> </ul> <h3>Deploy your own</h3> <p><a href="https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2Fzaidmukaddam%2Fminiperplx&amp;env=OPENAI_API_KEY,ANTHROPIC_API_KEY,GROQ_API_KEY,TAVILY_API_KEY,OPENWEATHER_API_KEY,E2B_API_KEY&amp;envDescription=API%20keys%20needed%20for%20application"><img src="https://vercel.com/button" alt="Deploy with Vercel"></a></p> <h3>Local development</h3> <p>To run the example locally you need to:</p> <ol> <li>Sign up for accounts with the AI providers you want to use. OpenAI and Anthropic are required, Tavily is required for the web search feature.</li> <li>Obtain API keys for each provider.</li> <li>Set the required environment variables as shown in the <code>.env.example</code> file, but in a new file called <code>.env.local</code>.</li> <li><code>pnpm install</code> to install the required dependencies.</li> <li><code>pnpm dev</code> to launch the development server.</li> </ol> <h1>License</h1> <p>This project is licensed under the MIT License - see the <a href="https://raw.githubusercontent.com/zaidmukaddam/miniperplx/main/LICENSE">LICENSE</a> file for details.</p> + mui/base-ui + 2024-12-20T01:38:36Z + tag:github.com,2024-12-20:/mui/base-ui + + <p>Base UI is an open-source library of accessible, unstyled UI components for React.</p><hr><h1>Base&nbsp;UI</h1> <p>From the creators of Radix, Floating UI, and Material&nbsp;UI, Base&nbsp;UI is an unstyled UI component library for building accessible user interfaces.</p> <hr> <h2>Documentation</h2> <p>To get started, check out the <a href="https://base-ui.com/react/overview/quick-start">Base&nbsp;UI documentation</a>.</p> <h2>Contributing</h2> <p>Read our <a href="https://raw.githubusercontent.com/mui/base-ui/master/CONTRIBUTING.md">contributing guide</a> to learn about our development process, how to propose bug fixes and improvements, and how to build and test your changes.</p> <h2>Releases</h2> <p>To see the latest updates, check out the <a href="https://base-ui.com/react/overview/releases">releases</a>.</p> <h2>Community</h2> <ul> <li><strong>Discord</strong> For community support, questions, and tips, join our <a href="https://discord.gg/g6C3hUtuxz">Discord</a>.</li> <li><strong>X</strong> To stay up-to-date on new releases and announcements follow <a href="https://x.com/base_ui">Base&nbsp;UI on X</a>.</li> <li><strong>Bluesky</strong> We're also on <a href="https://bsky.app/profile/base-ui.com">Bluesky</a>.</li> </ul> <h2>Team</h2> <ul> <li>Michał Dudak <a href="https://x.com/michaldudak">@michaldudak</a></li> <li>James Nelson <a href="https://x.com/atomiksdev">@atomiksdev</a></li> <li>Albert Yu <a href="https://github.com/mj12albert">@mj12albert</a></li> <li>Colm Tuite <a href="https://x.com/colmtuite">@colmtuite</a></li> <li>Marija Najdova <a href="https://x.com/marijanajdova">@marijanajdova</a></li> <li>Vlad Moroz <a href="https://x.com/vladyslavmoroz">@vladyslavmoroz</a></li> </ul> <h2>License</h2> <p>This project is licensed under the terms of the <a href="https://raw.githubusercontent.com/mui/base-ui/master/LICENSE">MIT license</a>.</p> + + + konfig-dev/konfig + 2024-12-20T01:38:36Z + tag:github.com,2024-12-20:/konfig-dev/konfig + + <p>SDK & API Docs Generator. Sunset as of December 2024</p><hr><h1>Konfig</h1> <p>The monorepo that holds everything...</p> <h2>Getting started</h2> <p>Get the repository on your local machine. <strong>Takes a minute.</strong></p> <pre><code class="language-shell">git clone https://github.com/konfig-dev/konfig --recursive cd konfig </code></pre> <p>This repository has submodules so pull all of them. <strong>Also take a few minutes.</strong></p> <pre><code class="language-shell">git submodule update --init --recursive --remote --merge </code></pre> <h2>Environment Setup</h2> <ol> <li> <p>Run Postgres as a background process</p> <pre><code class="language-shell"># in /konfig brew install postgresql mkdir -p postgres/data initdb -D ./postgres/data pg_ctl -D ./postgres/data start </code></pre> </li> <li> <p>Setup <code>.env</code> file in <code>generator/konfig-dash</code> to something like:</p> <pre><code>DATABASE_URL="postgresql://dylanhuang@localhost:5432/konfig_dev?connection_limit=1" TEST_DATABASE_URL="postgresql://dylanhuang@localhost:5432/konfig_test?connection_limit=1" AWS_ACCESS_KEY_ID=XXXXXX AWS_SECRET_ACCESS_KEY=XXXXXX # Used to encrypt/decrypt session cookies. Change this value and re-deploy to log out all users of your app at once. SESSION_SECRET=ZUWpQ9pB4fB5FFpjHLi8Z2qadzXkdTKhHBsXmGmjNdxtrZbevaCYWSpw7G7cHBhh </code></pre> </li> </ol> <p>Paste this into your <code>~/.zshrc</code> or <code>~/.bashrc</code></p> <pre><code class="language-bash">if [ -f $HOME/.envvars ]; then . $HOME/.envvars else print "404: ~/.envvars not found." fi </code></pre> <p>Then create <code>~/.envvars</code> with values from Dylan.</p> <h2>How to run Konfig</h2> <ol> <li> <p>Make sure <code>node_modules</code> is initiated in <code>konfig-dash</code></p> <pre><code class="language-shell">cd generator/konfig-dash yarn # takes some time yarn rw prisma migrate dev # setup the DB </code></pre> </li> <li> <p>Start the server with <code>yarn dev</code></p> <pre><code class="language-shell"># inside generator/konfig-dash yarn dev </code></pre> </li> <li> <p>Start <code>generator/konfig-generator-api</code> w/ IntelliJ</p> </li> <li> <p><code>cd</code> into an SDK repo and run <code>konfig generate -d</code></p> </li> </ol> <h2>Making Changes</h2> <p>See <a href="https://github.com/changesets/changesets">Changesets</a></p> + + + Helicone/helicone + 2024-12-20T01:38:36Z + tag:github.com,2024-12-20:/Helicone/helicone + + <p>🧊 Open source LLM-Observability Platform for Developers. One-line integration for monitoring, metrics, evals, agent tracing, prompt management, playground, etc. Supports OpenAI SDK, Vercel AI SDK, Anthropic SDK, LiteLLM, LLamaIndex, LangChain, and more. 🍓 YC W23</p><hr><p align="center" style="margin: 0; padding: 0;"> <img alt="helicone logo" src="https://github.com/user-attachments/assets/71c5896d-85e1-44fd-a966-0ac27170e343" width="400" style="display: block; margin: 0; padding: 0;"> </p> <div align="center"> <table> <thead> <tr> <th align="center">🔍 Observability</th> <th align="center">🕸️ Agent Tracing</th> <th align="center">💬 Prompt Management</th> </tr> </thead> <tbody> <tr> <td align="center">📊 Evaluations</td> <td align="center">📚 Datasets</td> <td align="center">🎛️ Fine-tuning</td> </tr> </tbody> </table> </div> <p align="center"> <img src="https://github.com/user-attachments/assets/e16332e9-d642-427e-b3ce-1a74a17f7b2c" alt="Open Source" width="600"> </p> <p align="center"> <a href="https://docs.helicone.ai/">Docs</a> • <a href="https://discord.gg/zsSTcH2qhG">Discord</a> • <a href="https://us.helicone.ai/roadmap">Roadmap</a> • <a href="https://www.helicone.ai/changelog">Changelog</a> • <a href="https://github.com/helicone/helicone/issues">Bug reports</a> </p> <p align="center"> <em><a href="https://helicone.ai/demo">See Helicone in Action! (Free)</a></em> </p> <p align="center"> <a href="https://github.com/helicone/helicone/graphs/contributors"><img src="https://img.shields.io/github/contributors/helicone/helicone?style=flat-square" alt="Contributors"></a> <a href="https://github.com/helicone/helicone/stargazers"><img alt="GitHub stars" src="https://img.shields.io/github/stars/helicone/helicone?style=flat-square"></a> <a href="https://github.com/helicone/helicone/pulse"><img alt="GitHub commit activity" src="https://img.shields.io/github/commit-activity/m/helicone/helicone?style=flat-square"></a> <a href="https://github.com/helicone/helicone/issues?q=is%3Aissue+is%3Aclosed"><img alt="GitHub closed issues" src="https://img.shields.io/github/issues-closed/helicone/helicone?style=flat-square"></a> <a href="https://www.ycombinator.com/companies/helicone"><img alt="Y Combinator" src="https://img.shields.io/badge/Y%20Combinator-Helicone-orange?style=flat-square"></a> </p> <h2>Helicone is the all-in-one, open-source LLM developer platform</h2> <ul> <li>🔌 <strong>Integrate</strong>: One-line of code to log all your requests to <a href="https://docs.helicone.ai/integrations/openai/javascript">OpenAI</a>, <a href="https://docs.helicone.ai/integrations/anthropic/javascript">Anthropic</a>, <a href="https://docs.helicone.ai/integrations/openai/langchain">LangChain</a>, <a href="https://docs.helicone.ai/integrations/gemini/api/javascript">Gemini</a>, <a href="https://docs.helicone.ai/getting-started/integration-method/together">TogetherAI</a>, <a href="https://docs.helicone.ai/integrations/openai/llamaindex">LlamaIndex</a>, <a href="https://docs.helicone.ai/getting-started/integration-method/litellm">LiteLLM</a>, <a href="https://docs.helicone.ai/getting-started/integration-method/openrouter">OpenRouter</a>, and <a href="https://docs.helicone.ai/getting-started/quick-start">more</a></li> <li>📊 <strong>Observe</strong>: Inspect and debug traces &amp; <a href="https://docs.helicone.ai/features/sessions">sessions</a> for agents, chatbots, document processing pipelines, and more</li> <li>📈 <strong>Analyze</strong>: Track metrics like <a href="https://docs.helicone.ai/faq/how-we-calculate-cost#developer">cost</a>, latency, quality, and more. Export to <a href="https://docs.helicone.ai/getting-started/integration-method/posthog">PostHog</a> in one-line for custom dashboards</li> <li>🎮 <strong>Playground</strong>: Rapidly test and iterate on prompts, sessions and traces in our UI</li> <li>🧠 <strong>Prompt Management</strong>: <a href="https://docs.helicone.ai/features/prompts">Version and experiment with prompts</a> using production data. Your prompts remain under your control, always accessible.</li> <li>🔍 <strong>Evaluate</strong>: Automatically run evals on traces or sessions using the latest platforms: <a href="https://lastmileai.dev/">LastMile</a> or <a href="https://ragas.io/">Ragas</a> (more coming soon)</li> <li>🎛️ <strong>Fine-tune</strong>: Fine-tune with one of our fine-tuning partners: <a href="https://openpipe.ai/">OpenPipe</a> or <a href="https://www.autonomi.ai/">Autonomi</a> (more coming soon)</li> <li>🛜 <strong>Gateway</strong>: <a href="https://docs.helicone.ai/features/advanced-usage/caching">Caching</a>, <a href="https://docs.helicone.ai/features/advanced-usage/custom-rate-limits">custom rate limits</a>, <a href="https://docs.helicone.ai/features/advanced-usage/llm-security">LLM security</a>, and more with our gateway</li> <li>🛡️ <strong>Enterprise Ready</strong>: SOC 2 and GDPR compliant</li> </ul> <blockquote> <p>🎁 Generous monthly <a href="https://www.helicone.ai/pricing">free tier</a> (100k requests/month) - No credit card required!</p> </blockquote> <h2>Quick Start ⚡️ One line of code</h2> <ol> <li> <p>Get your <code>write-only</code> API key by signing up <a href="https://raw.githubusercontent.com/Helicone/helicone/main/helicone.ai/signup">here</a>.</p> </li> <li> <p>Update only the <code>baseURL</code> in your code:</p> <pre><code class="language-typescript">import OpenAI from "openai"; const openai = new OpenAI({ apiKey: process.env.OPENAI_API_KEY, baseURL: `https://oai.helicone.ai/v1/${process.env.HELICONE_API_KEY}`, }); </code></pre> </li> </ol> <p>or - use headers for more secure environments</p> <pre><code class="language-typescript">import OpenAI from "openai"; const openai = new OpenAI({ apiKey: process.env.OPENAI_API_KEY, baseURL: `https://oai.helicone.ai/v1`, defaultHeaders: { "Helicone-Auth": `Bearer ${process.env.HELICONE_API_KEY}`, }, }); </code></pre> <ol start="3"> <li>🎉 You're all set! View your logs at <a href="https://www.helicone.ai">Helicone</a>.</li> </ol> <blockquote> <p>This quick start uses Helicone Cloud with OpenAI. For other providers or self-hosted options, see below.</p> </blockquote> <h2>Get Started For Free</h2> <h3>Helicone Cloud (Recommended)</h3> <p>The fastest and most reliable way to get started with Helicone. Get started for free at <a href="https://us.helicone.ai/signup">Helicone US</a> or <a href="https://eu.helicone.ai/signup">Helicone EU</a>. Your first 100k requests are free every month, after which you'll <a href="https://www.helicone.ai/pricing">pay based on usage</a>. Try our <a href="https://helicone.ai/demo">demo</a> to see Helicone in action!</p> <p><strong>Integrations:</strong> View our supported <a href="https://raw.githubusercontent.com/Helicone/helicone/main/#main-integrations">integrations</a>.</p> <p><strong>Latency Concerns:</strong> <a href="https://www.helicone.ai">Helicone's Cloud offering</a> is deployed on Cloudflare workers and ensures the lowest latency (~10ms) add-on to your API requests. View our <a href="https://docs.helicone.ai/faq/latency-affect#latency-impact">latency benchmarks</a>.</p> <h3>Self-Hosting Open Source LLM Observability with Helicone</h3> <h4>Docker</h4> <p>Helicone is simple to self-host and update. To get started locally, just use our <a href="https://docs.helicone.ai/getting-started/self-deploy-docker">docker-compose</a> file.</p> <p>Pre-Request:</p> <ul> <li>Copy the shared directory to the valhalla directory</li> <li>Create a valhalla folder in the valhalla directory and put /valhalla/jawn in it</li> </ul> <pre><code class="language-bash"># Clone the repository git clone https://github.com/Helicone/helicone.git cd docker cp .env.example .env # Start the services docker compose up </code></pre> <h4>Helm</h4> <p>For Enterprise workloads, we also have a production-ready Helm chart available. To access, contact us at <a href="mailto:enterprise@helicone.ai">enterprise@helicone.ai</a>.</p> <h4>Manual (Not Recommended)</h4> <p>Manual deployment is not recommended. Please use Docker or Helm. If you must, follow the instructions <a href="https://docs.helicone.ai/getting-started/self-deploy">here</a>.</p> <h4>Architecture</h4> <p>Helicone is comprised of five services:</p> <ul> <li><strong>Web</strong>: Frontend Platform (NextJS)</li> <li><strong>Worker</strong>: Proxy Logging (Cloudflare Workers)</li> <li><strong>Jawn</strong>: Dedicated Server for serving collecting logs (Express + Tsoa)</li> <li><strong>Supabase</strong>: Application Database and Auth</li> <li><strong>ClickHouse</strong>: Analytics Database</li> <li><strong>Minio</strong>: Object Storage for logs.</li> </ul> <h3>LLM Observability Integrations</h3> <h3>Main Integrations</h3> <table> <thead> <tr> <th>Integration</th> <th>Supports</th> <th>Description</th> </tr> </thead> <tbody> <tr> <td><a href="https://docs.helicone.ai/getting-started/integration-method/gateway">Generic Gateway</a></td> <td>Python, Node.js, Python w/package, LangChain JS, LangChain, cURL</td> <td>Flexible integration method for various LLM providers</td> </tr> <tr> <td>Async Logging (OpenLLMetry)</td> <td><a href="https://docs.helicone.ai/getting-started/integration-method/openllmetry">JS/TS</a>, <a href="https://www.npmjs.com/package/@helicone/helicone">Python</a></td> <td>Asynchronous logging for multiple LLM platforms</td> </tr> <tr> <td>OpenAI</td> <td><a href="https://docs.helicone.ai/integrations/openai/javascript">JS/TS</a>, <a href="https://docs.helicone.ai/integrations/openai/python">Python</a></td> <td>-</td> </tr> <tr> <td>Azure OpenAI</td> <td><a href="https://docs.helicone.ai/integrations/azure/javascript">JS/TS</a>, <a href="https://docs.helicone.ai/integrations/azure/python">Python</a></td> <td>-</td> </tr> <tr> <td>Anthropic</td> <td><a href="https://docs.helicone.ai/integrations/anthropic/javascript">JS/TS</a>, <a href="https://docs.helicone.ai/integrations/anthropic/python">Python</a></td> <td>-</td> </tr> <tr> <td>Ollama</td> <td><a href="https://docs.helicone.ai/integrations/ollama/javascript">JS/TS</a></td> <td>Run and use large language models locally</td> </tr> <tr> <td>AWS Bedrock</td> <td><a href="https://docs.helicone.ai/integrations/bedrock/javascript">JS/TS</a></td> <td>-</td> </tr> <tr> <td>Gemini API</td> <td><a href="https://docs.helicone.ai/integrations/gemini/api/javascript">JS/TS</a></td> <td>-</td> </tr> <tr> <td>Gemini Vertex AI</td> <td><a href="https://docs.helicone.ai/integrations/gemini/vertex/javascript">JS/TS</a></td> <td>Gemini models on Google Cloud's Vertex AI</td> </tr> <tr> <td>Vercel AI</td> <td><a href="https://docs.helicone.ai/integrations/vercelai/javascript">JS/TS</a></td> <td>AI SDK for building AI-powered applications</td> </tr> <tr> <td><a href="https://docs.helicone.ai/getting-started/integration-method/anyscale">Anyscale</a></td> <td>JS/TS, Python</td> <td>-</td> </tr> <tr> <td><a href="https://docs.helicone.ai/getting-started/integration-method/together">TogetherAI</a></td> <td>JS/TS, Python</td> <td>-</td> </tr> <tr> <td><a href="https://docs.helicone.ai/getting-started/integration-method/hyperbolic">Hyperbolic</a></td> <td>JS/TS, Python</td> <td>High-performance AI inference platform</td> </tr> <tr> <td>Groq</td> <td><a href="https://docs.helicone.ai/integrations/groq/javascript">JS/TS</a>, <a href="https://docs.helicone.ai/integrations/groq/python">Python</a></td> <td>High-performance models</td> </tr> <tr> <td><a href="https://docs.helicone.ai/getting-started/integration-method/deepinfra">DeepInfra</a></td> <td>JS/TS, Python</td> <td>Serverless AI inference for various models</td> </tr> <tr> <td><a href="https://docs.helicone.ai/getting-started/integration-method/openrouter">OpenRouter</a></td> <td>JS/TS, Python</td> <td>Unified API for multiple AI models</td> </tr> <tr> <td><a href="https://docs.helicone.ai/getting-started/integration-method/litellm">LiteLLM</a></td> <td>JS/TS, Python</td> <td>Proxy server supporting multiple LLM providers</td> </tr> <tr> <td><a href="https://docs.helicone.ai/getting-started/integration-method/fireworks">Fireworks AI</a></td> <td>JS/TS, Python</td> <td>Fast inference API for open-source LLMs</td> </tr> </tbody> </table> <h3>Supported Frameworks</h3> <table> <thead> <tr> <th>Framework</th> <th>Supports</th> <th>Description</th> </tr> </thead> <tbody> <tr> <td><a href="https://docs.helicone.ai/integrations/openai/langchain">LangChain</a></td> <td>JS/TS, Python</td> <td>-</td> </tr> <tr> <td><a href="https://docs.helicone.ai/integrations/openai/llamaindex">LlamaIndex</a></td> <td>Python</td> <td>Framework for building LLM-powered data applications</td> </tr> <tr> <td><a href="https://docs.helicone.ai/integrations/openai/crewai">CrewAI</a></td> <td>-</td> <td>Framework for orchestrating role-playing AI agents</td> </tr> <tr> <td>Big-AGI</td> <td><a href="https://github.com/enricoros/nextjs-chatgpt-app">JS/TS</a></td> <td>Generative AI suite</td> </tr> <tr> <td><a href="https://modelfusion.dev">ModelFusion</a></td> <td><a href="https://modelfusion.dev/integration/observability/helicone">JS/TS</a></td> <td>Abstraction layer for integrating AI models into JavaScript and TypeScript applications</td> </tr> </tbody> </table> <h3>Other Integrations</h3> <table> <thead> <tr> <th>Integration</th> <th>Description</th> </tr> </thead> <tbody> <tr> <td><a href="https://docs.helicone.ai/getting-started/integration-method/posthog">PostHog</a></td> <td>Product analytics platform. Build custom dashboards.</td> </tr> <tr> <td><a href="https://docs.helicone.ai/other-integrations/ragas">RAGAS</a></td> <td>Evaluation framework for retrieval-augmented generation</td> </tr> <tr> <td><a href="https://docs.helicone.ai/other-integrations/open-webui">Open WebUI</a></td> <td>Web interface for interacting with local LLMs</td> </tr> <tr> <td><a href="https://docs.helicone.ai/other-integrations/meta-gpt">MetaGPT</a></td> <td>Multi-agent framework</td> </tr> <tr> <td><a href="https://docs.helicone.ai/other-integrations/open-devin">Open Devin</a></td> <td>AI software engineer</td> </tr> <tr> <td><a href="https://docs.helicone.ai/other-integrations/embedchain">Mem0 EmbedChain</a></td> <td>Framework for building RAG applications</td> </tr> <tr> <td><a href="https://docs.helicone.ai/other-integrations/dify">Dify</a></td> <td>LLMOps platform for AI-native application development</td> </tr> </tbody> </table> <blockquote> <p>This list may be out of date. Don't see your provider or framework? Check out the latest integrations in our <a href="https://docs.helicone.ai/getting-started/quick-start">docs</a>. If not found there, request a new integration by contacting <a href="mailto:help@helicone.ai">help@helicone.ai</a>.</p> </blockquote> <h2>Community 🌍</h2> <h3>Learn this repo with Greptile</h3> <p><a href="https://learnthisrepo.com/helicone">learnthisrepo.com/helicone</a> |</p> <h3>Contributing</h3> <p>We ❤️ our contributors! We warmly welcome contributions for documentation, integrations, costs, and feature requests.</p> <ul> <li>If you have an idea for how Helicone can be better, create a <a href="https://github.com/Helicone/helicone/issues">GitHub issue</a> or vote on the <a href="https://github.com/Helicone/helicone/labels/roadmap">roadmap</a></li> <li>Update costs instructions in <a href="https://github.com/Helicone/helicone/raw/main/costs/README.md">costs/README.md</a></li> <li>Join <a href="https://discord.gg/zsSTcH2qhG">discord</a> to ask questions</li> </ul> <h2>License</h2> <p>Helicone is licensed under the <a href="https://raw.githubusercontent.com/Helicone/helicone/main/LICENSE">Apache v2.0 License</a>.</p> <h2>Additional Resources</h2> <ul> <li> <p><strong>Data Management</strong>: Manage and export your Helicone data with our <a href="https://docs.helicone.ai/rest/user/post-v1userquery">API</a>.</p> <ul> <li>Guides: <a href="https://docs.helicone.ai/use-cases/etl">ETL</a>, <a href="https://docs.helicone.ai/use-cases/getting-user-requests">Request Exporting</a></li> </ul> </li> <li> <p><strong>Data Ownership</strong>: Learn about <a href="https://docs.helicone.ai/use-cases/data-autonomy">Data Ownership and Autonomy</a></p> </li> </ul> <p>For more information, visit our <a href="https://docs.helicone.ai/">documentation</a>.</p> <h1>Contributors</h1> <a href="https://github.com/Helicone/helicone/graphs/contributors"> <img src="https://contrib.rocks/image?repo=Helicone/helicone"> </a> \ No newline at end of file diff --git a/unified-parallel-c/daily/index.xml b/unified-parallel-c/daily/index.xml index 9c471202f1e..f87e6794952 100644 --- a/unified-parallel-c/daily/index.xml +++ b/unified-parallel-c/daily/index.xml @@ -1,7 +1,7 @@ GitHub Unified Parallel C Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:38:10Z + 2024-12-20T01:38:35Z Daily Trending of Unified Parallel C in GitHub \ No newline at end of file diff --git a/unity3d-asset/daily/index.xml b/unity3d-asset/daily/index.xml index efe076afaa1..880e47dd613 100644 --- a/unity3d-asset/daily/index.xml +++ b/unity3d-asset/daily/index.xml @@ -1,7 +1,7 @@ GitHub Unity3D Asset Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:38:16Z + 2024-12-20T01:38:40Z Daily Trending of Unity3D Asset in GitHub \ No newline at end of file diff --git a/unix-assembly/daily/index.xml b/unix-assembly/daily/index.xml index 5821c09c9a4..9a5660e8da5 100644 --- a/unix-assembly/daily/index.xml +++ b/unix-assembly/daily/index.xml @@ -1,7 +1,7 @@ GitHub Unix Assembly Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:38:16Z + 2024-12-20T01:38:41Z Daily Trending of Unix Assembly in GitHub \ No newline at end of file diff --git a/unknown/daily/index.xml b/unknown/daily/index.xml index a9366e38d0f..f6ed6b63aea 100644 --- a/unknown/daily/index.xml +++ b/unknown/daily/index.xml @@ -1,14 +1,21 @@ GitHub Unknown languages Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:28:39Z + 2024-12-20T01:28:35Z Daily Trending of Unknown languages in GitHub - jujumilk3/leaked-system-prompts - 2024-12-19T01:28:39Z - tag:github.com,2024-12-19:/jujumilk3/leaked-system-prompts - - <p>Collection of leaked system prompts</p><hr> + TalEliyahu/awesome-security-newsletters + 2024-12-20T01:28:35Z + tag:github.com,2024-12-20:/TalEliyahu/awesome-security-newsletters + + <p>Periodic cyber security newsletters that capture the latest news, summaries of conference talks, research, best practices, tools, events, vulnerabilities, and analysis of trending threats and attacks</p><hr> + + + wwb521/live + 2024-12-20T01:28:35Z + tag:github.com,2024-12-20:/wwb521/live + + <p>更新高质量电视直播源,欢迎大家使用,永久免费</p><hr> \ No newline at end of file diff --git a/uno/daily/index.xml b/uno/daily/index.xml index f607e59f232..981fd9c05db 100644 --- a/uno/daily/index.xml +++ b/uno/daily/index.xml @@ -1,7 +1,7 @@ GitHub Uno Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:38:16Z + 2024-12-20T01:38:41Z Daily Trending of Uno in GitHub \ No newline at end of file diff --git a/unrealscript/daily/index.xml b/unrealscript/daily/index.xml index 18525416aab..5e2ae8ea937 100644 --- a/unrealscript/daily/index.xml +++ b/unrealscript/daily/index.xml @@ -1,7 +1,7 @@ GitHub UnrealScript Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:38:15Z + 2024-12-20T01:38:41Z Daily Trending of UnrealScript in GitHub \ No newline at end of file diff --git a/urweb/daily/index.xml b/urweb/daily/index.xml index e36f12d2f88..d0798393fd3 100644 --- a/urweb/daily/index.xml +++ b/urweb/daily/index.xml @@ -1,7 +1,7 @@ GitHub UrWeb Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:38:17Z + 2024-12-20T01:38:42Z Daily Trending of UrWeb in GitHub \ No newline at end of file diff --git a/v/daily/index.xml b/v/daily/index.xml index 6a96fefe0c8..1f7be3462ea 100644 --- a/v/daily/index.xml +++ b/v/daily/index.xml @@ -1,7 +1,7 @@ GitHub V Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:38:18Z + 2024-12-20T01:38:43Z Daily Trending of V in GitHub \ No newline at end of file diff --git a/vala/daily/index.xml b/vala/daily/index.xml index 3bcf187ee8d..7d37b4dac4b 100644 --- a/vala/daily/index.xml +++ b/vala/daily/index.xml @@ -1,7 +1,7 @@ GitHub Vala Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:38:18Z + 2024-12-20T01:38:43Z Daily Trending of Vala in GitHub \ No newline at end of file diff --git a/valve-data-format/daily/index.xml b/valve-data-format/daily/index.xml index 09cba79461d..c2cc79d8f8b 100644 --- a/valve-data-format/daily/index.xml +++ b/valve-data-format/daily/index.xml @@ -1,7 +1,7 @@ GitHub Valve Data Format Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:38:17Z + 2024-12-20T01:38:42Z Daily Trending of Valve Data Format in GitHub \ No newline at end of file diff --git a/vba/daily/index.xml b/vba/daily/index.xml index bdefea16819..0708b41a878 100644 --- a/vba/daily/index.xml +++ b/vba/daily/index.xml @@ -1,7 +1,7 @@ GitHub VBA Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:38:19Z + 2024-12-20T01:38:45Z Daily Trending of VBA in GitHub \ No newline at end of file diff --git a/vbscript/daily/index.xml b/vbscript/daily/index.xml index de7c9f4cba1..a6790c35428 100644 --- a/vbscript/daily/index.xml +++ b/vbscript/daily/index.xml @@ -1,7 +1,7 @@ GitHub VBScript Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:38:20Z + 2024-12-20T01:38:45Z Daily Trending of VBScript in GitHub \ No newline at end of file diff --git a/vcl/daily/index.xml b/vcl/daily/index.xml index 38043443eca..e7f90acddb5 100644 --- a/vcl/daily/index.xml +++ b/vcl/daily/index.xml @@ -1,7 +1,7 @@ GitHub VCL Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:38:19Z + 2024-12-20T01:38:44Z Daily Trending of VCL in GitHub \ No newline at end of file diff --git a/verilog/daily/index.xml b/verilog/daily/index.xml index acd321dea38..4c20c537a09 100644 --- a/verilog/daily/index.xml +++ b/verilog/daily/index.xml @@ -1,7 +1,7 @@ GitHub Verilog Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:38:21Z + 2024-12-20T01:38:47Z Daily Trending of Verilog in GitHub \ No newline at end of file diff --git a/vhdl/daily/index.xml b/vhdl/daily/index.xml index c34f6663a35..2777fae4b6f 100644 --- a/vhdl/daily/index.xml +++ b/vhdl/daily/index.xml @@ -1,7 +1,7 @@ GitHub VHDL Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:38:21Z + 2024-12-20T01:38:46Z Daily Trending of VHDL in GitHub \ No newline at end of file diff --git a/vim-help-file/daily/index.xml b/vim-help-file/daily/index.xml index 4e7fc52bdf9..c67e97cdb33 100644 --- a/vim-help-file/daily/index.xml +++ b/vim-help-file/daily/index.xml @@ -1,7 +1,7 @@ GitHub Vim Help File Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:38:20Z + 2024-12-20T01:38:46Z Daily Trending of Vim Help File in GitHub \ No newline at end of file diff --git a/vim-script/daily/index.xml b/vim-script/daily/index.xml index 9405fc51c7d..9051a898316 100644 --- a/vim-script/daily/index.xml +++ b/vim-script/daily/index.xml @@ -1,7 +1,7 @@ GitHub Vim Script Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:38:24Z + 2024-12-20T01:38:49Z Daily Trending of Vim Script in GitHub \ No newline at end of file diff --git a/vim-snippet/daily/index.xml b/vim-snippet/daily/index.xml index 1958242eed1..ec61ea31bde 100644 --- a/vim-snippet/daily/index.xml +++ b/vim-snippet/daily/index.xml @@ -1,7 +1,7 @@ GitHub Vim Snippet Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:38:22Z + 2024-12-20T01:38:48Z Daily Trending of Vim Snippet in GitHub \ No newline at end of file diff --git a/visual-basic-.net/daily/index.xml b/visual-basic-.net/daily/index.xml index 7be32895aa0..d85a9a146da 100644 --- a/visual-basic-.net/daily/index.xml +++ b/visual-basic-.net/daily/index.xml @@ -1,7 +1,7 @@ GitHub Visual Basic .NET Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:38:23Z + 2024-12-20T01:38:48Z Daily Trending of Visual Basic .NET in GitHub \ No newline at end of file diff --git a/volt/daily/index.xml b/volt/daily/index.xml index 648b971a4dc..0ee1585b8f3 100644 --- a/volt/daily/index.xml +++ b/volt/daily/index.xml @@ -1,7 +1,7 @@ GitHub Volt Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:38:25Z + 2024-12-20T01:38:50Z Daily Trending of Volt in GitHub \ No newline at end of file diff --git a/vue/daily/index.xml b/vue/daily/index.xml index 0ef470e998e..47e8dfd9d0d 100644 --- a/vue/daily/index.xml +++ b/vue/daily/index.xml @@ -1,14 +1,7 @@ GitHub Vue Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:38:26Z + 2024-12-20T01:38:51Z Daily Trending of Vue in GitHub - - jd-opensource/nutui - 2024-12-19T01:38:26Z - tag:github.com,2024-12-19:/jd-opensource/nutui - - <p>京东风格的移动端 Vue 组件库,支持多端小程序(A Vue.js UI Toolkit for Mobile Web)</p><hr> - \ No newline at end of file diff --git a/vyper/daily/index.xml b/vyper/daily/index.xml index 53462648422..3ed3a67a20d 100644 --- a/vyper/daily/index.xml +++ b/vyper/daily/index.xml @@ -1,7 +1,7 @@ GitHub Vyper Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:38:25Z + 2024-12-20T01:38:50Z Daily Trending of Vyper in GitHub \ No newline at end of file diff --git a/wavefront-material/daily/index.xml b/wavefront-material/daily/index.xml index 853758ec7d1..335eb6da3c2 100644 --- a/wavefront-material/daily/index.xml +++ b/wavefront-material/daily/index.xml @@ -1,7 +1,7 @@ GitHub Wavefront Material Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:38:25Z + 2024-12-20T01:38:51Z Daily Trending of Wavefront Material in GitHub \ No newline at end of file diff --git a/wavefront-object/daily/index.xml b/wavefront-object/daily/index.xml index 5a17d8a8065..ea10b587ae6 100644 --- a/wavefront-object/daily/index.xml +++ b/wavefront-object/daily/index.xml @@ -1,7 +1,7 @@ GitHub Wavefront Object Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:38:28Z + 2024-12-20T01:38:52Z Daily Trending of Wavefront Object in GitHub \ No newline at end of file diff --git a/wdl/daily/index.xml b/wdl/daily/index.xml index 4672f00c5d8..7dded6cca10 100644 --- a/wdl/daily/index.xml +++ b/wdl/daily/index.xml @@ -1,7 +1,7 @@ GitHub WDL Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:38:27Z + 2024-12-20T01:38:53Z Daily Trending of WDL in GitHub \ No newline at end of file diff --git a/web-ontology-language/daily/index.xml b/web-ontology-language/daily/index.xml index df33bf7f1c1..818af6e20aa 100644 --- a/web-ontology-language/daily/index.xml +++ b/web-ontology-language/daily/index.xml @@ -1,7 +1,7 @@ GitHub Web Ontology Language Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:38:27Z + 2024-12-20T01:38:52Z Daily Trending of Web Ontology Language in GitHub \ No newline at end of file diff --git a/webassembly/daily/index.xml b/webassembly/daily/index.xml index 5f0c5e17720..bf9cb4831b1 100644 --- a/webassembly/daily/index.xml +++ b/webassembly/daily/index.xml @@ -1,7 +1,7 @@ GitHub WebAssembly Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:38:28Z + 2024-12-20T01:38:53Z Daily Trending of WebAssembly in GitHub \ No newline at end of file diff --git a/webidl/daily/index.xml b/webidl/daily/index.xml index c9789b9c907..9bbcecc39f5 100644 --- a/webidl/daily/index.xml +++ b/webidl/daily/index.xml @@ -1,7 +1,7 @@ GitHub WebIDL Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:38:29Z + 2024-12-20T01:38:54Z Daily Trending of WebIDL in GitHub \ No newline at end of file diff --git a/webvtt/daily/index.xml b/webvtt/daily/index.xml index 7f4cc67a8ca..51079792d14 100644 --- a/webvtt/daily/index.xml +++ b/webvtt/daily/index.xml @@ -1,7 +1,7 @@ GitHub WebVTT Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:38:30Z + 2024-12-20T01:38:54Z Daily Trending of WebVTT in GitHub \ No newline at end of file diff --git a/wget-config/daily/index.xml b/wget-config/daily/index.xml index b70c24d3e93..f989b39e712 100644 --- a/wget-config/daily/index.xml +++ b/wget-config/daily/index.xml @@ -1,7 +1,7 @@ GitHub Wget Config Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:38:29Z + 2024-12-20T01:38:54Z Daily Trending of Wget Config in GitHub \ No newline at end of file diff --git a/wikitext/daily/index.xml b/wikitext/daily/index.xml index 8b375b2cd62..3f19e735740 100644 --- a/wikitext/daily/index.xml +++ b/wikitext/daily/index.xml @@ -1,7 +1,7 @@ GitHub Wikitext Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:35:05Z + 2024-12-20T01:35:07Z Daily Trending of Wikitext in GitHub \ No newline at end of file diff --git a/windows-registry-entries/daily/index.xml b/windows-registry-entries/daily/index.xml index 9de0a348461..7af03628c0d 100644 --- a/windows-registry-entries/daily/index.xml +++ b/windows-registry-entries/daily/index.xml @@ -1,7 +1,7 @@ GitHub Windows Registry Entries Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:38:31Z + 2024-12-20T01:38:56Z Daily Trending of Windows Registry Entries in GitHub \ No newline at end of file diff --git a/wisp/daily/index.xml b/wisp/daily/index.xml index 89532c977c3..2197fd994a0 100644 --- a/wisp/daily/index.xml +++ b/wisp/daily/index.xml @@ -1,7 +1,7 @@ GitHub wisp Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:38:32Z + 2024-12-20T01:38:57Z Daily Trending of wisp in GitHub \ No newline at end of file diff --git a/witcher-script/daily/index.xml b/witcher-script/daily/index.xml index 65e9b5e7772..412af4812fd 100644 --- a/witcher-script/daily/index.xml +++ b/witcher-script/daily/index.xml @@ -1,7 +1,7 @@ GitHub Witcher Script Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:38:32Z + 2024-12-20T01:38:58Z Daily Trending of Witcher Script in GitHub \ No newline at end of file diff --git a/wollok/daily/index.xml b/wollok/daily/index.xml index 78ff81321c4..343bb9f818c 100644 --- a/wollok/daily/index.xml +++ b/wollok/daily/index.xml @@ -1,7 +1,7 @@ GitHub Wollok Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:38:33Z + 2024-12-20T01:38:57Z Daily Trending of Wollok in GitHub \ No newline at end of file diff --git a/world-of-warcraft-addon-data/daily/index.xml b/world-of-warcraft-addon-data/daily/index.xml index 317431c8392..fefd9931c96 100644 --- a/world-of-warcraft-addon-data/daily/index.xml +++ b/world-of-warcraft-addon-data/daily/index.xml @@ -1,7 +1,7 @@ GitHub World of Warcraft Addon Data Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:38:32Z + 2024-12-20T01:38:58Z Daily Trending of World of Warcraft Addon Data in GitHub \ No newline at end of file diff --git a/x-bitmap/daily/index.xml b/x-bitmap/daily/index.xml index 99618632ecb..8a00eb62d63 100644 --- a/x-bitmap/daily/index.xml +++ b/x-bitmap/daily/index.xml @@ -1,7 +1,7 @@ GitHub X BitMap Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:38:33Z + 2024-12-20T01:38:59Z Daily Trending of X BitMap in GitHub \ No newline at end of file diff --git a/x-font-directory-index/daily/index.xml b/x-font-directory-index/daily/index.xml index 519af635c45..31a0f8a8983 100644 --- a/x-font-directory-index/daily/index.xml +++ b/x-font-directory-index/daily/index.xml @@ -1,7 +1,7 @@ GitHub X Font Directory Index Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:38:34Z + 2024-12-20T01:38:59Z Daily Trending of X Font Directory Index in GitHub \ No newline at end of file diff --git a/x-pixmap/daily/index.xml b/x-pixmap/daily/index.xml index 1f9a59b6955..5b9579a2d71 100644 --- a/x-pixmap/daily/index.xml +++ b/x-pixmap/daily/index.xml @@ -1,7 +1,7 @@ GitHub X PixMap Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:38:34Z + 2024-12-20T01:38:59Z Daily Trending of X PixMap in GitHub \ No newline at end of file diff --git a/x10/daily/index.xml b/x10/daily/index.xml index 43522a34f43..d4035646656 100644 --- a/x10/daily/index.xml +++ b/x10/daily/index.xml @@ -1,7 +1,7 @@ GitHub X10 Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:38:35Z + 2024-12-20T01:39:01Z Daily Trending of X10 in GitHub \ No newline at end of file diff --git a/xbase/daily/index.xml b/xbase/daily/index.xml index 8c00e8e08a1..d83149577ee 100644 --- a/xbase/daily/index.xml +++ b/xbase/daily/index.xml @@ -1,7 +1,7 @@ GitHub xBase Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:38:35Z + 2024-12-20T01:39:01Z Daily Trending of xBase in GitHub \ No newline at end of file diff --git a/xc/daily/index.xml b/xc/daily/index.xml index 074bd29ee69..36aaf6fb25b 100644 --- a/xc/daily/index.xml +++ b/xc/daily/index.xml @@ -1,7 +1,7 @@ GitHub XC Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:38:35Z + 2024-12-20T01:39:00Z Daily Trending of XC in GitHub \ No newline at end of file diff --git a/xcompose/daily/index.xml b/xcompose/daily/index.xml index f307c292ead..d7183c29e01 100644 --- a/xcompose/daily/index.xml +++ b/xcompose/daily/index.xml @@ -1,7 +1,7 @@ GitHub XCompose Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:38:36Z + 2024-12-20T01:39:01Z Daily Trending of XCompose in GitHub \ No newline at end of file diff --git a/xml-property-list/daily/index.xml b/xml-property-list/daily/index.xml index 3fa45c232d2..14029e30542 100644 --- a/xml-property-list/daily/index.xml +++ b/xml-property-list/daily/index.xml @@ -1,7 +1,7 @@ GitHub XML Property List Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:38:36Z + 2024-12-20T01:39:02Z Daily Trending of XML Property List in GitHub \ No newline at end of file diff --git a/xml/daily/index.xml b/xml/daily/index.xml index fe86560004f..3c082b1c971 100644 --- a/xml/daily/index.xml +++ b/xml/daily/index.xml @@ -1,7 +1,7 @@ GitHub XML Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:38:37Z + 2024-12-20T01:39:03Z Daily Trending of XML in GitHub \ No newline at end of file diff --git a/xojo/daily/index.xml b/xojo/daily/index.xml index c9a5a358b14..f8f71b5277a 100644 --- a/xojo/daily/index.xml +++ b/xojo/daily/index.xml @@ -1,7 +1,7 @@ GitHub Xojo Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:38:37Z + 2024-12-20T01:39:02Z Daily Trending of Xojo in GitHub \ No newline at end of file diff --git a/xonsh/daily/index.xml b/xonsh/daily/index.xml index b776cb5220e..a26d4b5f761 100644 --- a/xonsh/daily/index.xml +++ b/xonsh/daily/index.xml @@ -1,7 +1,7 @@ GitHub Xonsh Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:38:37Z + 2024-12-20T01:39:02Z Daily Trending of Xonsh in GitHub \ No newline at end of file diff --git a/xpages/daily/index.xml b/xpages/daily/index.xml index 3cf0c867713..53d23b9fdd5 100644 --- a/xpages/daily/index.xml +++ b/xpages/daily/index.xml @@ -1,7 +1,7 @@ GitHub XPages Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:38:38Z + 2024-12-20T01:39:05Z Daily Trending of XPages in GitHub \ No newline at end of file diff --git a/xproc/daily/index.xml b/xproc/daily/index.xml index fc08f5d2cdd..260c1d1099c 100644 --- a/xproc/daily/index.xml +++ b/xproc/daily/index.xml @@ -1,7 +1,7 @@ GitHub XProc Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:38:39Z + 2024-12-20T01:39:05Z Daily Trending of XProc in GitHub \ No newline at end of file diff --git a/xquery/daily/index.xml b/xquery/daily/index.xml index 7b7bdea2a78..b7b66a0868d 100644 --- a/xquery/daily/index.xml +++ b/xquery/daily/index.xml @@ -1,7 +1,7 @@ GitHub XQuery Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:38:39Z + 2024-12-20T01:39:04Z Daily Trending of XQuery in GitHub \ No newline at end of file diff --git a/xs/daily/index.xml b/xs/daily/index.xml index 3ac20551e88..4da53e9cd11 100644 --- a/xs/daily/index.xml +++ b/xs/daily/index.xml @@ -1,7 +1,7 @@ GitHub XS Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:38:39Z + 2024-12-20T01:39:04Z Daily Trending of XS in GitHub \ No newline at end of file diff --git a/xslt/daily/index.xml b/xslt/daily/index.xml index 3309ac35581..1d969aaba18 100644 --- a/xslt/daily/index.xml +++ b/xslt/daily/index.xml @@ -1,7 +1,7 @@ GitHub XSLT Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:38:42Z + 2024-12-20T01:39:07Z Daily Trending of XSLT in GitHub \ No newline at end of file diff --git a/xtend/daily/index.xml b/xtend/daily/index.xml index ce9738f3592..c848f04934c 100644 --- a/xtend/daily/index.xml +++ b/xtend/daily/index.xml @@ -1,7 +1,7 @@ GitHub Xtend Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:38:40Z + 2024-12-20T01:39:06Z Daily Trending of Xtend in GitHub \ No newline at end of file diff --git a/yacc/daily/index.xml b/yacc/daily/index.xml index 83dfcca0d46..bb75ea3d358 100644 --- a/yacc/daily/index.xml +++ b/yacc/daily/index.xml @@ -1,7 +1,7 @@ GitHub Yacc Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:38:40Z + 2024-12-20T01:39:06Z Daily Trending of Yacc in GitHub \ No newline at end of file diff --git a/yaml/daily/index.xml b/yaml/daily/index.xml index 835da2c71a0..3b78014d6c5 100644 --- a/yaml/daily/index.xml +++ b/yaml/daily/index.xml @@ -1,7 +1,7 @@ GitHub YAML Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:38:41Z + 2024-12-20T01:39:06Z Daily Trending of YAML in GitHub \ No newline at end of file diff --git a/yang/daily/index.xml b/yang/daily/index.xml index 07b7cba3cc3..859908802ca 100644 --- a/yang/daily/index.xml +++ b/yang/daily/index.xml @@ -1,7 +1,7 @@ GitHub YANG Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:38:43Z + 2024-12-20T01:39:09Z Daily Trending of YANG in GitHub \ No newline at end of file diff --git a/yara/daily/index.xml b/yara/daily/index.xml index 79254e498d8..2bb3378375c 100644 --- a/yara/daily/index.xml +++ b/yara/daily/index.xml @@ -1,7 +1,7 @@ GitHub YARA Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:38:43Z + 2024-12-20T01:39:10Z Daily Trending of YARA in GitHub \ No newline at end of file diff --git a/yasnippet/daily/index.xml b/yasnippet/daily/index.xml index f90282b3ff0..ab4c6c4b430 100644 --- a/yasnippet/daily/index.xml +++ b/yasnippet/daily/index.xml @@ -1,7 +1,7 @@ GitHub YASnippet Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:38:44Z + 2024-12-20T01:39:09Z Daily Trending of YASnippet in GitHub \ No newline at end of file diff --git a/zap/daily/index.xml b/zap/daily/index.xml index 68fb649ae07..d8049f3f246 100644 --- a/zap/daily/index.xml +++ b/zap/daily/index.xml @@ -1,7 +1,7 @@ GitHub ZAP Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:38:45Z + 2024-12-20T01:39:10Z Daily Trending of ZAP in GitHub \ No newline at end of file diff --git a/zeek/daily/index.xml b/zeek/daily/index.xml index 307a33d73df..b01129f6b0c 100644 --- a/zeek/daily/index.xml +++ b/zeek/daily/index.xml @@ -1,7 +1,7 @@ GitHub Zeek Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:29:15Z + 2024-12-20T01:29:05Z Daily Trending of Zeek in GitHub \ No newline at end of file diff --git a/zenscript/daily/index.xml b/zenscript/daily/index.xml index fbd43ec179f..f519ed197a4 100644 --- a/zenscript/daily/index.xml +++ b/zenscript/daily/index.xml @@ -1,7 +1,7 @@ GitHub ZenScript Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:38:44Z + 2024-12-20T01:39:11Z Daily Trending of ZenScript in GitHub \ No newline at end of file diff --git a/zephir/daily/index.xml b/zephir/daily/index.xml index c34d9959bf2..c09e2e2941d 100644 --- a/zephir/daily/index.xml +++ b/zephir/daily/index.xml @@ -1,7 +1,7 @@ GitHub Zephir Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:38:45Z + 2024-12-20T01:39:11Z Daily Trending of Zephir in GitHub \ No newline at end of file diff --git a/zig/daily/index.xml b/zig/daily/index.xml index 7bc5112077a..edc0a57678c 100644 --- a/zig/daily/index.xml +++ b/zig/daily/index.xml @@ -1,7 +1,7 @@ GitHub Zig Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:38:46Z + 2024-12-20T01:39:12Z Daily Trending of Zig in GitHub \ No newline at end of file diff --git a/zil/daily/index.xml b/zil/daily/index.xml index 7b8f1a2a73c..bbb4feb22b5 100644 --- a/zil/daily/index.xml +++ b/zil/daily/index.xml @@ -1,7 +1,7 @@ GitHub ZIL Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:38:47Z + 2024-12-20T01:39:13Z Daily Trending of ZIL in GitHub \ No newline at end of file diff --git a/zimpl/daily/index.xml b/zimpl/daily/index.xml index 0a402d059d0..a2cd85c6a69 100644 --- a/zimpl/daily/index.xml +++ b/zimpl/daily/index.xml @@ -1,7 +1,7 @@ GitHub Zimpl Daily Trending http://mshibanami.github.io/GitHubTrendingRSS - 2024-12-19T01:38:46Z + 2024-12-20T01:39:12Z Daily Trending of Zimpl in GitHub \ No newline at end of file