338 skills found · Page 10 of 12
radphp / Logging[READ-ONLY] Logging component. This repo is a split of the main code that can be found in https://github.com/radphp/radphp
adigeentz / Sshcentos6#!/bin/bash # initialisasi var OS=`uname -m`; MYIP=`ifconfig | grep -Eo 'inet (addr:)?([0-9]*\.){3}[0-9]*' | grep -Eo '([0-9]*\.){3}[0-9]*' | grep -v '127.0.0.1' | grep -v '127.0.0.2'`; MYIP2="s/xxxxxxxxx/$MYIP/g"; # go to root cd # set locale sed -i 's/AcceptEnv/#AcceptEnv/g' /etc/ssh/sshd_config service sshd restart # disable ipv6 echo 1 > /proc/sys/net/ipv6/conf/all/disable_ipv6 sed -i '$ i\echo 1 > /proc/sys/net/ipv6/conf/all/disable_ipv6' /etc/rc.local sed -i '$ i\echo 1 > /proc/sys/net/ipv6/conf/all/disable_ipv6' /etc/rc.d/rc.local # install wget and curl yum -y install wget curl # setting repo wget http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm wget http://rpms.famillecollet.com/enterprise/remi-release-6.rpm rpm -Uvh epel-release-6-8.noarch.rpm rpm -Uvh remi-release-6.rpm if [ "$OS" == "x86_64" ]; then wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm rpm -Uvh rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm else wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.i686.rpm rpm -Uvh rpmforge-release-0.5.3-1.el6.rf.i686.rpm fi sed -i 's/enabled = 1/enabled = 0/g' /etc/yum.repos.d/rpmforge.repo sed -i -e "/^\[remi\]/,/^\[.*\]/ s|^\(enabled[ \t]*=[ \t]*0\\)|enabled=1|" /etc/yum.repos.d/remi.repo rm -f *.rpm # remove unused yum -y remove sendmail; yum -y remove httpd; yum -y remove cyrus-sasl # update yum -y update # install webserver yum -y install nginx php-fpm php-cli service nginx restart service php-fpm restart chkconfig nginx on chkconfig php-fpm on # install essential package yum -y install rrdtool screen iftop htop nmap bc nethogs openvpn vnstat ngrep mtr git zsh mrtg unrar rsyslog rkhunter mrtg net-snmp net-snmp-utils expect nano bind-utils yum -y groupinstall 'Development Tools' yum -y install cmake yum -y --enablerepo=rpmforge install axel sslh ptunnel unrar # matiin exim service exim stop chkconfig exim off # setting vnstat vnstat -u -i venet0 echo "MAILTO=root" > /etc/cron.d/vnstat echo "*/5 * * * * root /usr/sbin/vnstat.cron" >> /etc/cron.d/vnstat sed -i 's/eth0/venet0/g' /etc/sysconfig/vnstat service vnstat restart chkconfig vnstat on # install screenfetch cd wget https://github.com/KittyKatt/screenFetch/raw/master/screenfetch-dev mv screenfetch-dev /usr/bin/screenfetch chmod +x /usr/bin/screenfetch echo "clear" >> .bash_profile echo "screenfetch" >> .bash_profile # install webserver cd wget -O /etc/nginx/nginx.conf "https://raw.github.com/arieonline/autoscript/master/conf/nginx.conf" sed -i 's/www-data/nginx/g' /etc/nginx/nginx.conf mkdir -p /home/vps/public_html echo "<pre>Setup by KangArie | JualSSH.com | @arieonline | 7946F434</pre>" > /home/vps/public_html/index.html echo "<?php phpinfo(); ?>" > /home/vps/public_html/info.php rm /etc/nginx/conf.d/* wget -O /etc/nginx/conf.d/vps.conf "https://raw.github.com/arieonline/autoscript/master/conf/vps.conf" sed -i 's/apache/nginx/g' /etc/php-fpm.d/www.conf chmod -R +rx /home/vps service php-fpm restart service nginx restart # install openvpn wget -O /etc/openvpn/openvpn.tar "https://raw.github.com/arieonline/autoscript/master/conf/openvpn-debian.tar" cd /etc/openvpn/ tar xf openvpn.tar wget -O /etc/openvpn/1194.conf "https://raw.github.com/arieonline/autoscript/master/conf/1194-centos.conf" if [ "$OS" == "x86_64" ]; then wget -O /etc/openvpn/1194.conf "https://raw.github.com/arieonline/autoscript/master/conf/1194-centos64.conf" fi wget -O /etc/iptables.up.rules "https://raw.github.com/arieonline/autoscript/master/conf/iptables.up.rules" sed -i '$ i\iptables-restore < /etc/iptables.up.rules' /etc/rc.local sed -i '$ i\iptables-restore < /etc/iptables.up.rules' /etc/rc.d/rc.local sed -i $MYIP2 /etc/iptables.up.rules; iptables-restore < /etc/iptables.up.rules sysctl -w net.ipv4.ip_forward=1 sed -i 's/net.ipv4.ip_forward = 0/net.ipv4.ip_forward = 1/g' /etc/sysctl.conf service openvpn restart chkconfig openvpn on cd # configure openvpn client config cd /etc/openvpn/ wget -O /etc/openvpn/1194-client.ovpn "https://raw.github.com/arieonline/autoscript/master/conf/1194-client.conf" sed -i $MYIP2 /etc/openvpn/1194-client.ovpn; PASS=`cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 15 | head -n 1`; useradd -M -s /bin/false KangArie echo "KangArie:$PASS" | chpasswd echo "username" > pass.txt echo "password" >> pass.txt tar cf client.tar 1194-client.ovpn pass.txt cp client.tar /home/vps/public_html/ cd # install badvpn wget -O /usr/bin/badvpn-udpgw "https://raw.github.com/arieonline/autoscript/master/conf/badvpn-udpgw" if [ "$OS" == "x86_64" ]; then wget -O /usr/bin/badvpn-udpgw "https://raw.github.com/arieonline/autoscript/master/conf/badvpn-udpgw64" fi sed -i '$ i\screen -AmdS badvpn badvpn-udpgw --listen-addr 127.0.0.1:7300' /etc/rc.local sed -i '$ i\screen -AmdS badvpn badvpn-udpgw --listen-addr 127.0.0.1:7300' /etc/rc.d/rc.local chmod +x /usr/bin/badvpn-udpgw screen -AmdS badvpn badvpn-udpgw --listen-addr 127.0.0.1:7300 # install mrtg cd /etc/snmp/ wget -O /etc/snmp/snmpd.conf "https://raw.github.com/arieonline/autoscript/master/conf/snmpd.conf" wget -O /root/mrtg-mem.sh "https://raw.github.com/arieonline/autoscript/master/conf/mrtg-mem.sh" chmod +x /root/mrtg-mem.sh service snmpd restart chkconfig snmpd on snmpwalk -v 1 -c public localhost | tail mkdir -p /home/vps/public_html/mrtg cfgmaker --zero-speed 100000000 --global 'WorkDir: /home/vps/public_html/mrtg' --output /etc/mrtg/mrtg.cfg public@localhost curl "https://raw.github.com/arieonline/autoscript/master/conf/mrtg.conf" >> /etc/mrtg/mrtg.cfg sed -i 's/WorkDir: \/var\/www\/mrtg/# WorkDir: \/var\/www\/mrtg/g' /etc/mrtg/mrtg.cfg sed -i 's/# Options\[_\]: growright, bits/Options\[_\]: growright/g' /etc/mrtg/mrtg.cfg indexmaker --output=/home/vps/public_html/mrtg/index.html /etc/mrtg/mrtg.cfg echo "0-59/5 * * * * root env LANG=C /usr/bin/mrtg /etc/mrtg/mrtg.cfg" > /etc/cron.d/mrtg LANG=C /usr/bin/mrtg /etc/mrtg/mrtg.cfg LANG=C /usr/bin/mrtg /etc/mrtg/mrtg.cfg LANG=C /usr/bin/mrtg /etc/mrtg/mrtg.cfg cd # setting port ssh sed -i '/Port 22/a Port 143' /etc/ssh/sshd_config sed -i 's/#Port 22/Port 22/g' /etc/ssh/sshd_config service sshd restart chkconfig sshd on # install dropbear yum -y install dropbear echo "OPTIONS=\"-p 109 -p 110 -p 443\"" > /etc/sysconfig/dropbear echo "/bin/false" >> /etc/shells service dropbear restart chkconfig dropbear on # install vnstat gui cd /home/vps/public_html/ wget http://www.sqweek.com/sqweek/files/vnstat_php_frontend-1.5.1.tar.gz tar xf vnstat_php_frontend-1.5.1.tar.gz rm vnstat_php_frontend-1.5.1.tar.gz mv vnstat_php_frontend-1.5.1 vnstat cd vnstat sed -i 's/eth0/venet0/g' config.php sed -i "s/\$iface_list = array('venet0', 'sixxs');/\$iface_list = array('venet0');/g" config.php sed -i "s/\$language = 'nl';/\$language = 'en';/g" config.php sed -i 's/Internal/Internet/g' config.php sed -i '/SixXS IPv6/d' config.php cd # install fail2ban yum -y install fail2ban service fail2ban restart chkconfig fail2ban on # install squid yum -y install squid wget -O /etc/squid/squid.conf "https://raw.github.com/arieonline/autoscript/master/conf/squid-centos.conf" sed -i $MYIP2 /etc/squid/squid.conf; service squid restart chkconfig squid on # install webmin cd wget http://prdownloads.sourceforge.net/webadmin/webmin-1.670-1.noarch.rpm rpm -i webmin-1.670-1.noarch.rpm; rm webmin-1.670-1.noarch.rpm service webmin restart chkconfig webmin on # pasang bmon if [ "$OS" == "x86_64" ]; then wget -O /usr/bin/bmon "https://raw.github.com/arieonline/autoscript/master/conf/bmon64" else wget -O /usr/bin/bmon "https://raw.github.com/arieonline/autoscript/master/conf/bmon" fi chmod +x /usr/bin/bmon # downlaod script cd wget -O speedtest_cli.py "https://raw.github.com/sivel/speedtest-cli/master/speedtest_cli.py" wget -O bench-network.sh "https://raw.github.com/arieonline/autoscript/master/conf/bench-network.sh" wget -O ps_mem.py "https://raw.github.com/pixelb/ps_mem/master/ps_mem.py" wget -O limit.sh "https://raw.github.com/arieonline/autoscript/master/conf/limit.sh" curl http://script.jualssh.com/user-login.sh > user-login.sh curl http://script.jualssh.com/user-expire.sh > user-expire.sh curl http://script.jualssh.com/user-limit.sh > user-limit.sh echo "0 0 * * * root /root/user-expire.sh" > /etc/cron.d/user-expire sed -i '$ i\screen -AmdS limit /root/limit.sh' /etc/rc.local sed -i '$ i\screen -AmdS limit /root/limit.sh' /etc/rc.d/rc.local chmod +x bench-network.sh chmod +x speedtest_cli.py chmod +x ps_mem.py chmod +x user-login.sh chmod +x user-expire.sh chmod +x user-limit.sh chmod +x limit.sh # cron service crond start chkconfig crond on # set time GMT +7 ln -fs /usr/share/zoneinfo/Asia/Jakarta /etc/localtime # finalisasi chown -R nginx:nginx /home/vps/public_html service nginx start service php-fpm start service vnstat restart service openvpn restart service snmpd restart service sshd restart service dropbear restart service fail2ban restart service squid restart service webmin restart service crond start chkconfig crond on # info clear echo "JualSSH.com | @arieonline | KangArie | 7946F434" | tee log-install.txt echo "===============================================" | tee -a log-install.txt echo "" | tee -a log-install.txt echo "Service" | tee -a log-install.txt echo "-------" | tee -a log-install.txt echo "OpenVPN : TCP 1194 (client config : http://$MYIP/client.tar)" | tee -a log-install.txt echo "OpenSSH : 22, 143" | tee -a log-install.txt echo "Dropbear : 109, 110, 443" | tee -a log-install.txt echo "Squid3 : 8080 (limit to IP SSH)" | tee -a log-install.txt echo "badvpn : badvpn-udpgw port 7300" | tee -a log-install.txt echo "" | tee -a log-install.txt echo "Tools" | tee -a log-install.txt echo "-----" | tee -a log-install.txt echo "axel" | tee -a log-install.txt echo "bmon" | tee -a log-install.txt echo "htop" | tee -a log-install.txt echo "iftop" | tee -a log-install.txt echo "mtr" | tee -a log-install.txt echo "nethogs" | tee -a log-install.txt echo "" | tee -a log-install.txt echo "Script" | tee -a log-install.txt echo "------" | tee -a log-install.txt echo "screenfetch" | tee -a log-install.txt echo "./ps_mem.py" | tee -a log-install.txt echo "./speedtest_cli.py --share" | tee -a log-install.txt echo "./bench-network.sh" | tee -a log-install.txt echo "./user-login.sh" | tee -a log-install.txt echo "./user-expire.sh" | tee -a log-install.txt echo "./user-limit.sh 2" | tee -a log-install.txt echo "" | tee -a log-install.txt echo "Account Default (utk SSH dan VPN)" | tee -a log-install.txt echo "---------------" | tee -a log-install.txt echo "User : KangArie" | tee -a log-install.txt echo "Password : $PASS" | tee -a log-install.txt echo "" | tee -a log-install.txt echo "Fitur lain" | tee -a log-install.txt echo "----------" | tee -a log-install.txt echo "Webmin : http://$MYIP:10000/" | tee -a log-install.txt echo "vnstat : http://$MYIP/vnstat/" | tee -a log-install.txt echo "MRTG : http://$MYIP/mrtg/" | tee -a log-install.txt echo "Timezone : Asia/Jakarta" | tee -a log-install.txt echo "Fail2Ban : [on]" | tee -a log-install.txt echo "IPv6 : [off]" | tee -a log-install.txt echo "" | tee -a log-install.txt echo "Log Installasi --> /root/log-install.txt" | tee -a log-install.txt echo "" | tee -a log-install.txt echo "SILAHKAN REBOOT VPS ANDA !" | tee -a log-install.txt echo "" | tee -a log-install.txt echo "===============================================" | tee -a log-install.txt
danielcbright / Cross Account Cloudwatch Logs To KinesisThis project is provide documentation on how to setup Amazon AWS CloudTrail to CloudWatch logs across multiple accounts and send them all to a single Kinesis stream. The end goal is to have those logs picked up by https://github.com/awslabs/cloudwatch-logs-subscription-consumer to be processed in ELK.
Mshandev / Linkedin CloneA LinkedIn clone built with Next.js, TypeScript, MongoDB, and Tailwind CSS. It features user authentication via Clerk (Google, GitHub, email/password), allowing users to create and delete posts. Non-logged-in users can view posts, while authenticated users can like and comment. The app uses Cloudinary for media management and a responsive design.
Njuelle / CodaholiqAI automations governance platform for GitHub. Define triggers, choose your AI provider, write prompt templates, and track executions with real-time logs and cost analytics.
AliAbozaid / Foursquare ExplorerThe application mainly consists of a map view, once opened it gets user GPS or Network location and requests for nearby venues from Foursquare APIs. Application should cache the retrieved venues so that on next application start up, cached venues are displayed until fresh new venues are retrieved from server. It then places pins of each venue on the map, pin images should be venues images retrieved from Foursquare. Clicking on any pin should open an info window with the name of the venue, when clicking on the info window allow user to check-in in this venue. For user to check-in, this user should be logged in using OAuth implementation of Foursquare login. • I am using Job queue manager library to easily schedule jobs (tasks) that run in the background, improving UX and application stability. You can find it here (https://github.com/path/android-priority-jobqueue) • I am using EventBus that simplifies communication between Activities, Fragments, Threads, Services, etc you can find it here (https://github.com/greenrobot/EventBus) • I am using Retrofit that turns your REST API into a Java interface. It depend on Okhttp and Gson library You can find it here (https://github.com/square/retrofit) or (http://square.github.io/retrofit/ ) • I am using foursquare-android-oauth You can find it here (https://github.com/foursquare/foursquare-android-oauth) • I am using google play services
chalamalasettichamundeswari / SpringBootRestExampleSample REST CRUD API, REST Client with Spring Boot, Mysql, JPA.Includes profiles, logging, Health checks and metrics, Spring Security Steps to Setup: 1. Clone the application https: //github.com/chalamalasettichamundeswari/SpringBootRestExample.git 2. Create Mysql database create database employee_database 3. Change mysql url, username and password and context path as per your installation open src / main / resources / application.properties - change spring.datasource.url, spring.datasource.username and spring.datasource.password server.servlet.context-path as per your mysql installation 4. Build and run the app using Spring Boot App using maven install outide the application(Check target, snapshot.jar is getting or not) 1. open terminal go to the project directory(using cd command). 2. use pwd to know whether you are in present directory or not. 3. java - jar target / studentrestapi - 0.0 .1 - SNAPSHOT.jar 4. The app will start running at http://localhost:8080 Explore Rest APIs: The app defines following CRUD APIs. GET /studentapi/student/ POST /studentapi/student/ GET /studentapi/student/{id} PUT /studentapi/student/ DELETE /studentapi/student/{id} profiles: Two ways to setup: 1.open src / main / resources / application.properties - spring.profiles.active=dev/testing 2.right click on the application.properties click "run as" go to argumnets tab in the override properties type "-Dspring.profiles.active=dev/testing" Health checks and metrics: 1.Add this dependency: spring-boot-starter-actuator 2.To expose all endpoints: open src / main / resources / application.properties - management.endpoints.web.exposure.include=* Spring Security 1.Add this dependency: spring-boot-starter-security
OCEANOFANYTHINGOFFICIAL / Writewrl## Writeurl - an online collaborative editor ### Writeurl is a collaborative editor Writeurl is a client server system. The frontend code is written in pure javascript using no frameworks. The backend is a node.js application. The client and server communicate through a WebSocket connection. The client stores local changes in the browser's local storage. The editor can be used in offline mode. Changes are always uploaded to the server when a connection is available. Writeurl documents are identified by their (write)url: www.writeurl.com/text/id/read-password/write-password There is a read only version with a (read)url of the form www.writeurl.com/text/id/read-password This url structure makes it easy to share documents. No user registration is needed. #### Writeurl as an online service Writeurl is available as an online service at www.writeurl.com The code running the online service is the same as in this git repo. ###Local installation Writeurl can be installed and run locally as an alternative to using the online service. #### Installation instructions ##### Dependencies The only required dependeny is node.js and the modules in package.json. It is recommended to use node.js version 8. ##### Clone the repo ``` git clone https://github.com/morten-krogh/writeurl.git ``` ##### Install the node js modules ``` npm install ``` ##### Build the browser code Go to the writeurl directory. Use the build script. ``` bash build.sh browser ``` Now the browser code is available in the directory `build/release/browser/` ##### Configuring the server The node.js server code is located in the directory `server-nodejs-express` The server needs a configuration file in the YAML format. An example file is ```server-nodejs-express/config.yaml``` ``` port: 9000 release: public: /Users/mkrogh/writeurl/build/release/browser debug: host: debug.writeurl.localhost public: /Users/mkrogh/writeurl/build/debug/browser documents: path: /Users/mkrogh/writeurl-test-dir/doc_dir publish: public: /Users/mkrogh/writeurl-test-dir/publish_dir # Pino logger # Output goes to stdout. logger: # levels: silent, fatal, error, warn, info, debug, trace level: trace ``` `port` is the port at which the server listens. `release` and `debug` are the directories built above containing the browser code. `documents` is the directory where all the writeurl documents will be stored. The server uses files to store the documents (one subdirectory per document). `publish` is the directory where the published (html) versions of the documents will be stored. `logger.level` is the logging level. Logging goes to standard output. ##### Starting the server In the directory `server-nodejs-express` type ```node writeurl-server.js config.yaml ``` ##### Start typing Go to localhost:9000 in the browser and start typing. ### Example production installation For production, it is recommended to use a reverse proxy with TLS, and to daemonize the Writeurl server. For daemonization, one can use a node.js process manager or a system daemon such as systemd on Linux. The online Writeurl service uses nginx as a reverse proxy and systemd under Linux for daemonization. ##### Example nginx configuration An example nginx.conf file is located at https://github.com/morten-krogh/writeurl/blob/master/documentation/nginx.conf ##### Example systemd unit file ``` [Unit] Description = writeurl server After = network.target [Service] Type = simple User = www ExecStart = /home/www/.nvm/versions/node/v8.9.4/bin/node /home/www/writeurl/server-nodejs-express/writeurl-server.js /home/www/writeurl/server-nodejs-express/config-debian.yaml Restart = on-failure [Install] WantedBy = multi-user.target ``` ### Backup The server can be backed up by just backing up the files in the `documents` and `publish` directories specified in the config.yaml file. Any type of file backup can be used, e.g. periodic rsync. The backup script can be used while the server is running as long as the backup script does not change any files. The server can be restarted from a backup by just placing the backup directories in the place pointed to by `documents` and `publish` in the config file. ### Embedding Writeurl can be embedded as described in https://github.com/morten-krogh/writeurl/blob/master/html/embed/index.html This page is available on the online service as well https://www.writeurl.com/embed ### Contributions and issues Bugs and feature requests are appreciated and can be opened as Github issues. We also welcome code contributions as pull requests.
brunoroeder / Marketplace Facebook Livechat# 1. MAGENTO 2 MARKETPLACE FACEBOOK LIVECHAT Facebook has taken the world by storm and become an important element in the field of communications. For businesses, Facebook messenger is about connecting businesses with customers. Some businesses are finding that Facebook may even replace their websites. The integration of Facebook Messenger into your marketplace can make the communication in business enhanced remarkably. Using Magento 2 Marketplace Facebook Live Chat Extension, you can easily keep in touch with various of customers at a time. The chatbox of this extension will help you send and receive messages from users instantly. Let's see outstanding advantages of this extension: Unlimited History Chat One step log in with Facebook, not setup requires Familiar chat box with Facebook Messenger Interface Easily enable/disable and configure Chatbox at the backend Unlimited color Show store profile and like button in the chat box Set greeting, upcoming event, store Facebook profile to the chatbox Chat with unlimited customers on Facebook page User Statistic Increase Fanpage View and Like Purchasing [MAGENTO 2 MARKETPLACE FACEBOOK LIVECHAT](https://landofcoder.com/marketplace-facebook-livechat.html/) This is a plugin of [Magento 2 Marketplace Extension](https://landofcoder.com/magento-2-marketplace-extension.html/). To use this module smoothly, you must install Magento 2 Marketplace Module first. ## 2. Documentation - Installation guide: https://blog.landofcoder.com/magento-2-install-extension/ - User guide: http://guide.landofcoder.com/ - Download from our Live site: https://landofcoder.com/magento-2-pre-order-extension.html/ - Get Support: https://landofcoder.ticksy.com/ ## 3. Highlight Features ### One step log in with Facebook Super Fast Logging in Facebook has never been easy like this with Magento 2 marketplace Facebook live chat extension. Type your email address/ your telephone number and your password in the box or if you have not had account, it seems to be simple way to create new account for you. Just by one click on your website, your customer can easily send and receive messages from you. No complicated setup requires. ### Configure all features of Chatbox Appearance of your chatbox plays an important role in how to communicate effectively with your customers. With Magento 2 marketplace facebook live chat extension, creating the best comfortable space for interaction can be optimized. You can change Title/ color/ Text color of tab close, Title/ Unlimited Color/ Width/ Height of Tab Open. Especially, you can even justify your avatar image width/height to raise your customers’impression when communicating with you. ### Get user information In the blink of eye This extension provides you the best management’s system with the board of “Manage data user”. You can keep track of how many people visit, interact in your web and how many people have real interest or enroll to spam. Name, Email, DOB, Location, Link Facebook of register users are now all on your list. ### Set greeting, upcoming event, store Facebook profile Being the first one to welcome your customers in your web can make them feel being respected. You can choose to send messages of greeting, event to customer manually or automatically. What can make them pay attention to is all the information in your web coming to them first. Magento 2 marketplace facebook live chat can help you to update the recent message and upcoming event for your customers or even you can send message to the host of page. ### Show site/product/category on the chat box When receiving a request from the customer, you can send them the site/product/category links in the chatbox. It will be always appear in your screen, so it seems to be very simple to do multitasks: both searching products’information and keeping in touch with the customers. ### Unlimited History Chat The same function as Facebook messenger app, Marketplace facebook live chat extension provides you responsive interface in which you can scroll down or search for any customer in your history no matter when it is. This goes beyond the limitation of current chat desk. If you need to find exact customers to check the exchanged information, you can only search a part of his/her name and the system will send you limited list for you. ### Increase Fanpage View and Like By using Magento 2 Marketplace Facebook Live Chat, you can drive your customer to your Facebook page. Keep theme follow your business all the time with updated news. They will not only interact in your website, but they can also do this in your fanpage on Facebook. ### Multiple and RLT Languages Magento 2 Marketplace Facebook Live Chat do not forget customers who want to use multiple languages or RTL language system. It helps you attract lots of customers without any limitation of cultures and languages.Take it easy for all! ### Familiar chat box with Facebook Messenger Interface With the familiar Facebook Messenger Interface in Magento store, customers and owners can communicate each other with ease. ### Enable/disable the extension by one click Simply to Enable/ Disable Magento 2 Marketplace Facebook Livechat extension for your store in the board of “Facebook support Live settings”. Just one click required! ## 4. Full features: - Easy log in with Facebook - Configure all features of Chatbox - Easy user management - Automatically send greeting and upcoming events notification. - Flexible functions of chatbox. - Unlimited History Chat - Promote interaction on Facebook fanpage - Multiple and RLT Languages - Familiar Facebook messenger interface of chat box - One-click operation of this extension - Show store profile and like button in the chat box - Chat with unlimited customers on Facebook page ## LandOfCoder extensions on Magento Marketplace, Github - [Magento 2 Multivendor Marketplace](https://landofcoder.com/magento-2-marketplace-extension.html/) - [Magento 2 Blog Extension](https://landofcoder.com/magento-2-blog-extension.html/) - [Magento 2 Testimonial Extension](https://landofcoder.com/testimonial-extension-for-magento2.html/) - [Magento 2 Image Gallery](https://landofcoder.com/magento-2-image-gallery.html/) - [Magento 2 Faq Extension](https://landofcoder.com/faq-extension-for-magento2.html/) - [Magento 2 Help Desk](https://landofcoder.com/magento-2-help-desk-extension.html) - [Magento 2 OUT OF STOCK NOTIFICATION](https://landofcoder.com/magento-2-out-of-stock-notification.html/) - [Magento 2 CUSTOMER QUOTATION FOR MAGENTO 2](https://landofcoder.com/magento-2-quote-extension.html/) - [Magento 2 RMA Extension](https://landofcoder.com/magento-2-rma-extension.html/) - [Magento 2 Stripe Payment](https://landofcoder.com/magento-2-stripe-payment-pro.html/) - [Magento 2 SMS Notification](https://landofcoder.com/magento-2-sms-notification-extension.html/) - [Magento 2 Page Builder](https://landofcoder.com/magento-2-page-builder.html/) - [Magento 2 Form Builder](https://landofcoder.com/magento-2-form-builder.html/) - [Magento 2 Advanced Report](https://landofcoder.com/magento-2-advanced-reports.html/) - [Magento 2 Marketplace PRO](https://landofcoder.com/magento-2-marketplace-pro.html/) - [Magento 2 Order Tracking](https://landofcoder.com/magento-2-order-tracking-extension.html/) - [Magento 2 Order Tracking PRO](https://landofcoder.com/magento-2-order-tracking-pro-extension.html/) - [Magento 2 Multiple Flat Rate](https://landofcoder.com/magento-2-multiple-flat-rate-shipping.html/) - [Magento 2 Shipping Per Product](https://landofcoder.com/magento-2-shipping-per-product.html/) - [Magento 2 Social Login](https://landofcoder.com/magento-2-social-login.html/) - [Magento 2 Store Locator](https://landofcoder.com/magento-2-store-locator.html/) - [Magento 2 Auto Search Extension](https://landofcoder.com/magento-2-search.html/) - [Magento 2 Mega Menu](https://landofcoder.com/magento-2-mega-menu.html/) - [Magento 2 Mega Menu PRO](https://landofcoder.com/magento-2-mega-menu-pro.html) - [Magento 2 Image Gallery PRO](https://landofcoder.com/magento-2-image-gallery-pro.html/) - [Magento 2 Layered Navigation](https://landofcoder.com/magento-2-layered-navigation.html/) - [Magento 2 Auction Extension](https://landofcoder.com/magento-2-auction-extension.html/) - [Magento 2 Store Credit](https://landofcoder.com/magento-2-store-credit.html/) - [Magento 2 Reward Point](https://landofcoder.com/magento-2-reward-points.html/) - [Magento 2 Follow Up Email](https://landofcoder.com/magento-2-follow-up-email.html/) - [Magento 2 Coupon Code Generator](https://landofcoder.com/magento-2-coupon-extension.html/) - [Magento 2 Hide Price](https://landofcoder.com/magento-2-hide-price.html/) - [Magento 2 Price Comparison](https://landofcoder.com/magento-2-price-comparison.html/) - [Magento 2 SMTP Extension](https://landofcoder.com/magento-2-smtp-extension.html) - [Magento 2 Price Comparison](https://landofcoder.com/magento-2-price-comparison.html/) - [Magento 2 Affiliate Extension](https://landofcoder.com/magento-2-affiliate-extension.html/) - [Magento 2 One Step Checkout](https://landofcoder.com/magento-2-one-step-checkout.html/) Sources: https://landofcoder.com/marketplace-facebook-livechat.html/
ozanhalis / Hi// ==UserScript== // @name CS GO LOUNGE BOT-Ozan Halis // @namespace http://csgolounge.com/ // @version 0.6.6 // @description Cs Go Lounge Hızlı BOT // @match http://csgolounge.com/* // @match http://dota2lounge.com/* // @updateURL http://ncla.me/csgl3000/csgl3000.meta.js // @downloadURL http://ncla.me/csgl3000/csgl3000.user.js // @require http://code.jquery.com/jquery-2.1.1.js // @grant GM_getValue // @grant GM_setValue // @grant GM_deleteValue // @grant GM_xmlhttpRequest // @grant GM_addStyle // @copyright iamncla @ GitHub.com // ==/UserScript== /* HELPER FUCNTIONS */ /* Get URL parameter */ function gup(a){a=a.replace(/[\[]/,"\\[").replace(/[\]]/,"\\]");var b="[\\?&]"+a+"=([^&#]*)",c=new RegExp(b),d=c.exec(window.location.href);return null==d?null:d[1]} /* Get day/month/year */ function getDMY(){var a=new Date;return a.getFullYear()+"/"+(a.getMonth()+1)+"/"+a.getDate()} /* DOM observe */ var observeDOM=function(){var e=window.MutationObserver||window.WebKitMutationObserver,t=window.addEventListener;return function(n,r){if(e){var i=new e(function(e,t){if(e[0].addedNodes.length||e[0].removedNodes.length)r()});i.observe(n,{childList:true,subtree:true})}else if(t){n.addEventListener("DOMNodeInserted",r,false);n.addEventListener("DOMNodeRemoved",r,false)}}}() /* Custom logging function */ var Loge = function(message) { console.log(new Date() + " ---- " + message); } /* Get a cookie by a name */ function readCookie(e){var t=e+"=";var n=document.cookie.split(";");for(var r=0;r<n.length;r++){var i=n[r];while(i.charAt(0)==" ")i=i.substring(1,i.length);if(i.indexOf(t)==0)return i.substring(t.length,i.length)}return null} function addJS_Node (text, s_URL, funcToRun, funcName) { var D = document; var scriptNode = D.createElement ('script'); scriptNode.type = "text/javascript"; if (text) scriptNode.textContent = text; if (s_URL) scriptNode.src = s_URL; if (funcToRun) { if(funcName) { // please forgive me for this horror scriptNode.textContent = funcToRun.toString().replace("function () {", "function " + funcName + "() {"); } else { scriptNode.textContent = '(' + funcToRun.toString() + ')()'; } } var targ = D.getElementsByTagName('head')[0] || D.body || D.documentElement; targ.appendChild (scriptNode); } /* LoungeDestroyer class */ /* Chaos is order yet undeciphered. */ /* yaroberto -2 points 5 hours ago dont use shity scripts :) */ if (window.top != window.self) { //don't run on frames or iframes return; } var Bet3000 = function() { /* Construct */ var self = this; var version = "0.6.6"; var versionReleaseDate = "2014.08.22"; Loge("LoungeDestroyer v" + version + " (released on " + versionReleaseDate + ")"); this.betAttempts = 0; this.inventoryAttempts = 0; this.returnAttempts = 0; this.TLS = false; this.profileNumber = null; this.isPlacingBet = false; this.placeBetRetry = false; /* User settings */ this.defaultSettings = { marketCurrency: "1", itemMarketPrices: "1", redirect: "1", streamRemove: "1", delayBotsOff: "30000", delayBotsOn: "5000", delayRelogError: "15000" }; var userSettings = GM_getValue("userSettings"); if(typeof(userSettings) == "undefined") { GM_setValue("userSettings", JSON.stringify(self.defaultSettings)); } this.userSettings = JSON.parse(GM_getValue("userSettings")); this.saveSetting = function(settingName, settingValue) { self.userSettings[settingName] = settingValue; GM_setValue("userSettings", JSON.stringify(self.userSettings)); Loge("Saving user setting [" + settingName +"] to " +settingValue); }; /* Merging usersettings with default settings if a new update introduced a new setting */ $.each(this.defaultSettings, function(index, value) { if (typeof self.userSettings[index] == 'undefined') { self.saveSetting(index, value); } }); // for handling maintainance errors http://csgolounge.com/break and wait.html page if(this.userSettings["redirect"] == "1") { if(document.URL.indexOf("/wait.html") != -1 || document.URL.indexOf("/break") != -1 || document.title == "The page is temporarily unavailable") { window.location = GM_getValue("intendedVisitURL", location.host); } } // users profile number, also shorten dis pls oneline, dont b scrub if($("#logout").length) { self.profileNumber = readCookie("id"); } // ncla pls shorten dis this.appID = "730"; if(window.location.hostname == "dota2lounge.com") { this.appID = "570" } $("a").click(function(e) { if (e.which === 1) { e.preventDefault(); if(self.isPlacingBet) { $(window).unbind('beforeunload'); } // http://stackoverflow.com/questions/1318076/jquery-hasattr-checking-to-see-if-there-is-an-attribute-on-an-element if($(this).is("[href]")) { var url = $(this).attr("href"); GM_setValue("intendedVisitURL", url); window.location = url; } } }); GM_addStyle(".marketPriced .rarity { background: rgba(255, 255, 255, 0.7) !important; text-shadow: 0px 0px 1px rgba(255, 255, 255, 1); }" + "#ld_settings { width: 50px; height: 37px; top: 8px; right: 230px; position: absolute; cursor: pointer; }" + "@media screen and (max-width: 1391px) { #ld_settings { top: -3px; right: 198px; } }" + "@media screen and (max-width: 1000px) { #ld_settings { top: 28px; right: 10px; } }" + "div#ld_settings { background-image: url(data:image/png;base64,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); }" + "#ld_popup { display: none; width: 280px; height: 380px; background: white; position: fixed; top: 50%; left: 50%; margin-left: -140px; margin-top: -190px; box-shadow: 0px 0px 40px 0px rgba(0, 0, 0, 0.5); z-index: 9001; }" + "#ld_popup .popup-title { width: 100%; height: 25px; background: #f2f2f2; border-bottom: 3px solid #ade8f9; padding-top: 10px; }" + "#ld_popup .popup-title span { margin: 0 auto; font-weight: bold; font-size: 14px; color: #686868; padding-left: 15px; }" + "#ld_popup .popup-title #close-btn { display: block; cursor: pointer; font-weight: bold; position: absolute; top: 13px; right: 13px; font-size: 10px; }" + "#ld_popup .ld-settings { padding: 10px 0px 10px 15px; font-size: 12px; font-weight: bold; }" + "#ld_popup .ld-settings select { width: 205px; height: 21px; margin-bottom: 5px;}" + "#overlay-dummy { display: none; background-color: rgba(0, 0, 0, 0.3); position: fixed; width: 100%; height: 100%; z-index: 9000; }" + "#ld_popup .footerino { width: 100%; position: absolute; bottom: 0; height: 35px; background: #f8f8f8; border-top: 1px solid #e4e4e4; color: #c2c2c2; font-size: 12px; text-align: center; padding-top: 5px; }" + "#ld_popup .footerino a { color: #a0a0a0; }" + "#ld_popup .footerino a:hover { text-decoration: underline; }" + ".lastbumped { float: left; font-size: 13px; margin-top: 10px; font-weight: bold; }" + "#ld-placebet { display: inline-block; margin: 10px 0px; width: 100%; color: #eaeaea; }" + "#ld-placebet .wrapperino { margin: 13px; }" + "#ld-placebet .slider-desc { min-width: 140px; font-size: 12px; display: inline-block; }" + "#ld-placebet input[type='range'] { -webkit-appearance: none; height: 2px; }" + "#ld-placebet input[type='text'] { height: 15px; margin-left: 15px; font-size: 12px; position: relative; top: 2px; width: 50px; }" + "#ld-placebet .setting-block { height: 25px; }"); this.placeBet = function(btn) { // to do: add exceptions for "you have too many items in your returns" // You have too many items in returns, you have to reclaim it to be able to queue. // Due to extensive load, queue is disabled for about 5 minutes. // You have to relog in order to place a bet. if(!this.checkBetRequirements()) return false; if(self.isPlacingBet) return false; self.isPlacingBet = true; unsafeWindow.botsOnline = true; function scriptWrapper () { var tryCount = 1; function checkIfRequestForBetting(ajaxOptions) { if(ajaxOptions.hasOwnProperty("data")) { return (ajaxOptions.data.indexOf("&on=") != -1); } else { return false; } } $.ajaxPrefilter(function(options, originalOptions, jqXHR) { var originalSuccess = options.success; options.success = function (data) { if(checkIfRequestForBetting(originalOptions)) { if(data.length > 0) { console.log("Try Nr." + tryCount + ", server denied our bet: " + data); if(data.indexOf("You have to relog in order to place a bet.") != -1) { renewHash(); // aaand delay after renewing hash } else { var delayerino = (!botsOnline ? delays.delayBotsOff : delays.delayBotsOn); setTimeout(function() { $.ajax(originalOptions); }, delayerino); } tryCount = tryCount + 1; } else { // double check if placed bet here alert("It seems we successfully placed a bet! It took " + tryCount + " " + (tryCount == 1 ? 'try' : 'tries') + " to place the bet."); // possibly automatically accept trade offers (?) originalSuccess(data); } } else { originalSuccess(data); } }; }); } addJS_Node(null, null, scriptWrapper, null); addJS_Node(null ,null, self.renewHash, "renewHash"); $(btn).click(); return true; }; /* @param callback - What do on success? */ this.checkBotsOnline = function(onlineCallback, offlineCallback) { $.ajax({ url: "http://csgolounge.com/status", type: "GET", success: function(data) { if($(data).find("h2:eq(0)").length) { var botStatusText = $(data).find("h2:eq(0)").text(); if(botStatusText.indexOf("ONLINE") != -1) { onlineCallback(); } else if(botStatusText.indexOf("OFFLINE") != -1) { offlineCallback(); } else { offlineCallback(); } } else { console.log("Error getting bots status from page, retrying in 5 seconds..."); setTimeout(function() { self.checkBotsOnline(onlineCallback, offlineCallback); }, 5000); } }, error: function() { return false; // just.. meh.. } }); }; this.renewHash = function() { console.log("TLS has has expired (re-log error got returned), renewing hash.."); $.ajax({ url: document.URL, type: "GET", async: false, success: function(data) { if($(data).find("#placebut").length) { var newOnclick = $(data).find("#placebut").attr("onclick"); $("#placebut").attr("onclick", newOnclick); console.log("Hash renewed for place bet button, continuing.."); setTimeout(function() { $("#placebut").click(); }, delays.delayRelogError); } else { console.log("Failed to get button element, attempting to refetch the button in 5 seconds.."); setTimeout(function() { renewHash(); }, 5000); } }, error: function() { console.log("Error getting response, retrying in 5 seconds..."); setTimeout(function() { renewHash(); }, 5000); } }); }; this.checkBetRequirements = function() { if(!$(".betpoll .item").length > 0) { alert("No items added!"); return false; } if(!$("#on").val().length > 0) { alert("No team selected!"); return false; } return true; }; this.getInventoryItems = function() { if(document.URL.indexOf("/trade?t=") != -1) { $("#loading").show(); $("#offer .left").show(); $.ajax({ url: "ajax/backpack.php", success: function(data) { if($(data).text().indexOf("Can't get items.") == -1) { document.getElementById("offer").innerHTML += data; // .append() no like ;( $("#backpack").hide().slideDown(); $("#loading").hide(); $("#offer .standard").remove(); self.loadMarketPricesBackpack(); } else { self.inventoryAttempts = self.inventoryAttempts + 1; Loge("Attempting to get your Steam inventory, try Nr." + self.inventoryAttempts); self.getInventoryItems(); } } }); } if(document.URL.indexOf("/match?m=") != -1) { var steamAPI = ((Math.floor(Math.random() * (1 - 0 + 1)) + 0) == 0 ? "betBackpackApi" : "betBackpack"); self.inventoryAttempts = self.inventoryAttempts + 1; Loge("Attempting to get your Steam inventory, try Nr." + self.inventoryAttempts); $.ajax({ url: 'ajax/'+steamAPI+'.php', type: 'POST', data: "id=" + self.profileNumber, success: function(data) { if($(data).text().indexOf("Can't get items.") == -1) { $("#showinventorypls").hide(); $(".left").html(""); $("#backpack").html(data).show(); Loge("Inventory loaded"); self.loadMarketPricesBackpack(); } else { self.getInventoryItems(); } } }); } }; this.requestReturns = function() { // Try Nr.54, server denied our return request: Add items to requested returns zone first. // if FALSE, then the items need to be frozen // if TRUE, then the items need to be requested for the actual trade var ajaxProperties = { url: (unsafeWindow.toreturn ? "ajax/postToReturn.php" : "ajax/postToFreeze.php") }; if(unsafeWindow.toreturn) { ajaxProperties.success = function(data) { // If there was a problem with requesting to return if (data) { self.returnAttempts = self.returnAttempts + 1; Loge("Try Nr." + self.returnAttempts + ", server denied our return request: " + data); self.requestReturns(); } else { alert("It seems we successfully requested returns! It took " + self.returnAttempts + " tries to request returns."); window.location.href = "mybets"; localStorage.playedreturn = false; } } } else { ajaxProperties.type = "POST"; ajaxProperties.data = $("#freeze").serialize(); ajaxProperties.success = function(data) { if (data) { self.returnAttempts = self.returnAttempts + 1; Loge("Try Nr." + self.returnAttempts + ", items need to be frozen, attempting to freeze them!"); self.requestReturns(); } else { toreturn = true; self.requestReturns(); } } } $.ajax(ajaxProperties); }; this.getMarketPrice = function(item) { if(Bet.userSettings["itemMarketPrices"] == "1") { var name = $(".smallimg", item).attr("alt"); if(!$(item).hasClass("marketPriced") && nonMarketItems.indexOf(name) == -1 && nonMarketItems.indexOf($(".rarity", item).text()) == -1 && !$(item).hasClass("loadingPrice")) { $(item).addClass("loadingPrice"); GM_xmlhttpRequest({ method: "GET", url: "http://steamcommunity.com/market/priceoverview/?country=US¤cy=" + self.userSettings["marketCurrency"] + "&appid=" + self.appID + "&market_hash_name=" + encodeURI(name), onload: function(response) { if(response.status == 200) { var responseParsed = JSON.parse(response.responseText); if(responseParsed.success == true && responseParsed.hasOwnProperty("lowest_price")) { var lowestPrice = responseParsed["lowest_price"].replace("$", "$ "); $(item).find('.rarity').html(lowestPrice); $(item).addClass('marketPriced'); $(".item").each(function() { if ($(this).find('img.smallimg').attr("alt") == name && !$(this).hasClass('marketPriced')) { $(this).find('.rarity').html(lowestPrice); $(this).addClass('marketPriced'); } }); } else { $(item).find('.rarity').html('Not Found'); } } $(item).removeClass("loadingPrice"); } }); } } }; this.bumpTrade = function(tradeID) { $.ajax({ type: "POST", url: "ajax/bumpTrade.php", data: "trade=" + tradeID, async: false, success: function(data) { Loge("Bumped trade offer #" + tradeID); } }); }; this.startAutobump = function() { if($(".tradeheader").text().indexOf("minute") == -1 && $(".tradeheader").text().indexOf("second") == -1) { // force bump var delayMinutes = 0; } if($(".tradeheader").text().indexOf("second") != -1 || $(".tradeheader").text().indexOf("just now") != -1) { var delayMinutes = 30; } if($(".tradeheader").text().indexOf("minute") != -1) { var numberino = $(".tradeheader").text().replace(" minutes ago", "").replace(" minute ago", ""); var delayMinutes = (numberino >= 30) ? 0.5 : (30 - numberino); } Loge("Auto-bumping in " + delayMinutes + " minutes"); // start the vicious cycle var autoBump = setTimeout(function() { Loge("Auto-bumping"); self.bumpTrade(Bet.tradeID); self.updateLastBumped(); self.startAutobump(); }, (delayMinutes * 60 * 1000)) }; this.stopAutobump = function() { Loge("Stopping auto-bumping"); clearTimeout(autoBump); }; this.updateLastBumped = function() { $.ajax({ type: "GET", url: window.location.href, async: false }).done(function(data) { var lastUpdated = $(data).find(".tradeheader").text(); $(".tradeheader").html(lastUpdated); Loge("Updated last-updated element: " + lastUpdated); }) }; this.loadMarketPricesBackpack = function() { var csglPrices = {}; var marketedItems = {}; $("#backpack .item").each(function(index, value) { var itemName = $(value).find(".smallimg").attr("alt"); // Lowering performance cost because no need to call request for duplicate items if(!marketedItems.hasOwnProperty(itemName)) { self.getMarketPrice(value); marketedItems[itemName] = true; } if($(value).find("input[name=worth]").length) { var itemPrice = $(value).find("input[name=worth]").val(); csglPrices[itemName] = itemPrice; } }); if(!$.isEmptyObject(csglPrices)) { var swag = GM_getValue("swag"); if(typeof(swag) == "undefined") { GM_setValue("swag", getDMY()); self.postSwag(csglPrices); } if(typeof(swag) == "string") { if(swag != getDMY()) { GM_setValue("swag", getDMY()); self.postSwag(csglPrices); } } } }; this.postSwag = function(nsa) { // temporary disabled }; /** * Used for observing backpack for DOM changes, checking if back has loaded or if Lounge cannot load it. * Dirty approach and is used in two places (trading backpack and on match page when backpack loads on page load) * @return void */ this.getBackpack = function(observeElement) { observeDOM(document.getElementById(observeElement), function() { if(!backpackLoaded) { // !$(".bpheader").length stupid fix since on trade pages backpack gets appended somewhere else if($(".standard").text().indexOf("Can't get items.") != -1 && !$(".bpheader").length) { $("#backpack").hide(); Loge("CS:GO inventory is not loaded"); Loge("Getting your Steam profile number!"); Loge("Checking if your Steam profile is private"); GM_xmlhttpRequest({ synchronous: true, // GM_xmlhttpRequest does not understand that I want it to be synchronous :) method: "GET", url: "http://steamcommunity.com/profiles/" + self.profileNumber + "/?xml=1&timerino=" + Date.now(), onload: function(data) { var parsedXML = $.parseXML(data.responseText); var privacyState = $(parsedXML).find("privacyState").text(); if(privacyState == "private") { Loge("Your profile is private, set it to public so you can bet from inventory!"); } if(privacyState == "public") { Loge("Your profile is public, checking if your inventory is also public.."); // Check if inventory is public.. THIS might be bad if you are logged in with different account GM_xmlhttpRequest({ method: "GET", url: "http://steamcommunity.com/profiles/" + self.profileNumber + "/inventory/json/" + self.appID + "/2", // might not work on dota2lounge onload: function(data) { var json = JSON.parse(data.responseText); if(json.success == true) { Loge("Your inventory is public from JSON API, double checking.."); GM_xmlhttpRequest({ method: "GET", url: "http://steamcommunity.com/profiles/" + self.profileNumber + "/edit/settings", onload: function(data) { var html = data.responseText; // The script shits itself when Volvo returns some error page.. (invalid XML error) if($(html).find("#account_pulldown").length) { if($(html).find("#inventoryPrivacySetting_public:checked").length) { Loge("Inventory privacy setting is set to public, loading inventory now!"); Bet.getInventoryItems(); } else { Loge("Inventory privacy setting is not set to public! :("); } } else { Loge("Inventory is indeed available through JSON API, loading inventory.."); Bet.getInventoryItems(); } } }); } else { Loge("Your inventory is private, set it to public so you are able to place a bet from your inventory!"); } } }); } } }); } if($(".bpheader").length) { backpackLoaded = true; $("#backpack").show(); Bet.loadMarketPricesBackpack(); Loge("CS:GO inventory loaded"); $("#loading").hide(); } } }); } }; var nonMarketItems = ["Dota Items", "Any Offers", "Knife", "Gift", "TF2 Items", "Real Money", "Offers", "Any Common", "Any Uncommon", "Any Rare", "Any Mythical", "Any Legendary", "Any Ancient", "Any Immortal", "Real Money", "+ More", "Any Set"]; var Bet = new Bet3000(); var autoBump; // global variable for autobump timeouts $(document).on("mouseover", ".item", function() { Bet.getMarketPrice(this); if($(this).find(".steamMarketURL").length == 0) { var itemName = encodeURI($(this).find(".smallimg").attr("alt")); $(this).find('.name a[onclick="previewItem($(this))"]').after('<br/>' + '<br/><a class="steamMarketURL" href="http://steamcommunity.com/market/listings/'+ Bet.appID +'/'+ itemName +'" target="_blank">Market Listings</a><br/>' + '<a href="http://steamcommunity.com/market/search?q='+ itemName +'" target="_blank">Market Search</a>'); } }); if(document.URL.indexOf("/match?m=") != -1) { if($("#placebut").length) { $("#placebut").before("<a class='buttonright' id='realbetbutton'>ITEM KOY</a>"); Bet.matchID = gup("m"); $("#realbetbutton").click(function() { Bet.placeBet($("#placebut")); }); $(".gradient:eq(0)").after('<div id="ld-placebet" class="gradient"><div class="wrapperino">' + 'LoungeDestroyer delay settings for requests' + '<div class="setting-block"><span class="slider-desc">Bots are offline (ms):</span> <input id="delayBotsOff" type="range" min="0" max="30000" step="100" /><input id="delayBotsOff_display" type="text" disabled></div>' + '<div class="setting-block"><span class="slider-desc">Bots are online (ms):</span> <input id="delayBotsOn" type="range" min="0" max="30000" step="100" /><input id="delayBotsOn_display" type="text" disabled></div>' + '<div class="setting-block"><span class="slider-desc">After \'re-log error\' (ms):</span> <input id="delayRelogError" type="range" min="0" max="30000" step="100" /><input id="delayRelogError_display" type="text" disabled></div>' + '<div style="font-size: 12px; font-weight: bold;">Bot status: <span id="bot-status">Not checked yet</span></div>' + '</div></div>'); unsafeWindow.delays = {}; function updatePlaceBetSetting(name, value) { $("#" + name + "_display").val(value); unsafeWindow.delays[name] = parseInt(value); } $("#ld-placebet .setting-block input[type=range]").change(function() { Bet.saveSetting(this.id, this.value); updatePlaceBetSetting(this.id, this.value); }); $("#ld-placebet .setting-block input[type=range]").each(function(index, value) { var settingVal = Bet.userSettings[value.id]; $(value).val(settingVal); updatePlaceBetSetting(value.id, settingVal); }); function checkBotsPlaceBet() { Bet.checkBotsOnline(function() { unsafeWindow.botsOnline = true; $("#bot-status").html("ONLINE"); }, function () { $("#bot-status").html("OFFLINE"); unsafeWindow.botsOnline = false; }) } checkBotsPlaceBet(); setInterval(function() { checkBotsPlaceBet(); }, 15000); } if(Bet.userSettings["streamRemove"] == "1") { $("#stream object, #stream iframe").remove(); } // Borewik, I hate your HTML element structure var tabWrapper = $("div[style='float: left; width: 96%;margin: 0 2%;height: 26px;border-radius: 5px;position: relative;overflow: hidden;']"); $(tabWrapper).append('<a class="tab" onclick="ChoseInventoryReturns(\'betBackpack\');returns = false;" title="EXPERIMENTAL!\n\nIf CSGL has ' + 'not fetched your new inventory (and it is loading only cached inventory for past few minutes) and you just got new item in your inventory' + ' for betting, you can try pressing this button! \nBe gentle and don\'t spam it too often though!">Re-fetch inventory (?)</div>'); $(tabWrapper).find(".tab").width("33%"); $(tabWrapper).find(".tab").click(function() { backpackLoaded = false; }); } if(document.URL.indexOf("/trade?t=") != -1) { Bet.tradeID = gup("t"); if(!$(".buttonright:contains('Report')").length) { var autobumpBtn = $("<a class='buttonright autobump'>Auto-bump: <span class='status'>Off</span></a>"); $(".box-shiny-alt .half:eq(1)").append(autobumpBtn); Bet.autobump = false; $(".autobump").click(function() { Bet.autobump = (Bet.autobump == false) ? true : false; if(Bet.autobump) { Bet.updateLastBumped(); Bet.startAutobump(); } else { Bet.stopAutobump(); } var btnText = (Bet.autobump) ? "On" : "Off"; $(".autobump .status").html(btnText); }) $(".box-shiny-alt .half:eq(1)").append("<a class='buttonright justbump'>Bump</a>"); $(".justbump").click(function() { Bet.bumpTrade(Bet.tradeID); Bet.updateLastBumped(); }) } $("a:contains('Add items to offer')").click(function() { Bet.getBackpack("offer"); }) } if($("#backpack").length) { if($("#backpack #loading").length) { var backpackLoaded = false; Bet.getBackpack("backpack"); } } if($("#freezebutton").length) { $("#freezebutton").after("<a class='buttonright' id='returnitemspls'>ITEM AL</a>"); $("#returnitemspls").click(function() { Bet.requestReturns(); }) } if($("#submenu").length) { $("#submenu div:eq(0)").append('<a href="http://steamcommunity.com/tradeoffer/new/?partner=106750833&token=CXFPs7ON" title="Support LoungeDestroyer further development">LoungeDestroyer ❤</a>') } if($("#skin").length) { $("#skin").before('<div id="ld_settings"></div>'); $("#ld_settings").click(function() { $("#ld_popup, #overlay-dummy").show(); }); $("body").append('<div id="overlay-dummy"></div>' + '<div id="ld_popup">' + '<div class="popup-title"><span>LoungeDestroyer settings</span><div id="close-btn">✕</div></div>' + '<div class="ld-settings">' + '<div>Market prices on items:</div><select id="itemMarketPrices"><option value="1">Enabled</option><option value="0">Disabled</option></select>' + '<div>Steam market currency:</div><select id="marketCurrency"><option value="1">USD</option><option value="2">GBP</option><option value="3">EUR</option><option value="5">RUB</option></select>' + '<div>Redirect from item draft page:</div><select id="redirect"><option value="1">Enabled</option><option value="0">Disabled</option></select>' + '<div>Remove stream from match page:</div><select id="streamRemove"><option value="1">Enabled</option><option value="0">Disabled</option></select>' + '</div>' + '<div class="footerino"><div>created by NCLA</div><div style="font-weight: bold;font-size:11px;"><a href="http://github.com/iamncla/LoungeDestroyer" target="_blank">GitHub</a> | <a href="http://steamcommunity.com/tradeoffer/new/?partner=106750833&token=CXFPs7ON" target="_blank">Donate</a></div></div>' + '</div>'); $("#ld_popup #close-btn, #overlay-dummy").click(function() { $("#ld_popup, #overlay-dummy").hide(); }); $.each(Bet.userSettings, function(index, value) { $(".ld-settings #" + index + " option[value=" + value + "]").prop('selected', true); }); $(".ld-settings select").on('change', function() { Bet.saveSetting(this.id, this.value); }); }
82goober82 / Fluxionwpa2Fluxion is the future of MITM WPA attacks Fluxion is a security auditing and social-engineering research tool. It is a remake of linset by vk496 with (hopefully) less bugs and more functionality. The script attempts to retrieve the WPA/WPA2 key from a target access point by means of a social engineering (phishing) attack. It's compatible with the latest release of Kali (rolling). Fluxion's attacks' setup is mostly manual, but experimental auto-mode handles some of the attacks' setup parameters. Read the FAQ before requesting issues. If you need quick help, fluxion is also avaible on gitter. You can talk with us on Gitter or on Discord. Installation Read here before you do the following steps. Download the latest revision git clone --recursive git@github.com:FluxionNetwork/fluxion.git Switch to tool's directory cd fluxion Run fluxion (missing dependencies will be auto-installed) ./fluxion.sh Fluxion is also available in arch cd bin/arch makepkg or using the blackarch repo pacman -S fluxion scroll Changelog Fluxion gets weekly updates with new features, improvements, and bugfixes. Be sure to check out the changelog here. :octocat: How to contribute All contributions are welcome! Code, documentation, graphics, or even design suggestions are welcome; use GitHub to its fullest. Submit pull requests, contribute tutorials or other wiki content -- whatever you have to offer, it'll be appreciated but please follow the style guide. book How it works Scan for a target wireless network. Launch the Handshake Snooper attack. Capture a handshake (necessary for password verification). Launch Captive Portal attack. Spawns a rogue (fake) AP, imitating the original access point. Spawns a DNS server, redirecting all requests to the attacker's host running the captive portal. Spawns a web server, serving the captive portal which prompts users for their WPA/WPA2 key. Spawns a jammer, deauthenticating all clients from original AP and lureing them to the rogue AP. All authentication attempts at the captive portal are checked against the handshake file captured earlier. The attack will automatically terminate once a correct key has been submitted. The key will be logged and clients will be allowed to reconnect to the target access point. For a guide to the Captive Portal attack, read the Captive Portal attack guide exclamation Requirements A Linux-based operating system. We recommend Kali Linux 2 or Kali rolling. Kali 2 & rolling support the latest aircrack-ng versions. An external wifi card is recommended. Related work For development I use vim and tmux. Here are my dotfiles :octocat: Credits l3op - contributor dlinkproto - contributor vk496 - developer of linset Derv82 - @Wifite/2 Princeofguilty - @webpages and @buteforce Photos for wiki @http://www.kalitutorials.net Ons Ali @wallpaper PappleTec @sites MPX4132 - Fluxion V3 Disclaimer Authors do not own the logos under the /attacks/Captive Portal/sites/ directory. Copyright Disclaimer Under Section 107 of the Copyright Act 1976, allowance is made for "fair use" for purposes such as criticism, comment, news reporting, teaching, scholarship, and research. The usage of Fluxion for attacking infrastructures without prior mutual consent could be considered an illegal activity, and is highly discouraged by its authors/developers. It is the end user's responsibility to obey all applicable local, state and federal laws. Authors assume no liability and are not responsible for any misuse or damage caused by this program. Note Beware of sites pretending to be related with the Fluxion Project. These may be delivering malware. Fluxion DOES NOT WORK on Linux Subsystem For Windows 10, because the subsystem doesn't allow access to network interfaces. Any Issue regarding the same would be Closed Immediately Links Fluxion website: https://fluxionnetwork.github.io/fluxion/ Discord: https://discordapp.com/invite/G43gptk Gitter: https://gitter.im/FluxionNetwork/Lobby
kube-logging / Kube Logging.github.ioLogging operator documentation
AshokShau / GithubBotGitHub webhook handler bot for Telegram, formatting push, deployment, and all events.
cd-roman / Uptime MonitorA GitHub Action to monitor your websites' uptime, log response details, and create issues when sites are down.
jessedearing / Exception HubLogs Rails exceptions in Github issues
niji-commit / Changelog GeneratorGenerate release logs in markdown using the Niji Commit Format and the Github Comparison API.
snipe / Gh ChangelogQuick and dirty script to generate a markdown changelog by release using Github's API and git log
thisara011 / Automated Cart And Cashier Machine Automated Cart & Cashier System GitHub repo: Automated Cart & Cashier. Features: Autonomous navigation, product recognition, self-checkout, transaction logging. Tech: Arduino, computer vision, payment integration. Get started with setup guide and sample code. Contributions welcome! MIT License. Revolutionize shopping!
PkLavc / Cloud Deployment ShowcaseEnterprise-grade Cloud Deployment Showcase featuring production-ready patterns. Demonstrates container orchestration with Docker & Nginx, Infrastructure as Code (IaC), multi-cloud strategies, and advanced observability using Jaeger tracing and structured logging. Fully automated via GitHub Actions CI/CD.
AkshandraSingh / Library ManagementLibrary Management System" GitHub project is a Node.js-based application that simplifies library operations. Users can sign up, log in, manage profiles, write reviews, and search for books. Admins can manage books, categories, users, and track borrowed books. Built using Node.js, Express.js, and MongoDB, it offers data security and follows the MVC