From 7470d0f364d2455c271146602db2b7ec60b70f6a Mon Sep 17 00:00:00 2001 From: Oliver Marks Date: Thu, 7 Jul 2016 09:14:17 +0100 Subject: [PATCH] rename source dir --- Dockerfile | 11 +- README.md | 22 +- developers/pre-commit.sh | 4 + site/examples.html | 99 - site/static_resources/css/default.css | 274 - .../css/sprite-action-white.css | 982 -- .../css/sprite-content-white.css | 208 - .../css/sprite-navigation-white.css | 130 - site/static_resources/images/background.jpg | Bin 6750 -> 0 bytes site/static_resources/images/background.png | Bin 6486 -> 0 bytes .../images/badges/art_hacker.png | Bin 1329 -> 0 bytes .../static_resources/images/badges/badges.svg | 2004 ---- .../images/badges/circuit_hacker.png | Bin 1046 -> 0 bytes .../images/badges/code_hacker.png | Bin 1101 -> 0 bytes .../images/badges/craft_hacker.png | Bin 1369 -> 0 bytes .../images/badges/founder.png | Bin 1329 -> 0 bytes .../images/badges/handyman.png | Bin 1249 -> 0 bytes .../static_resources/images/badges/member.png | Bin 1159 -> 0 bytes .../images/badges/pledged.png | Bin 1304 -> 0 bytes .../images/badges/trainer.png | Bin 1084 -> 0 bytes .../images/banners/audio_board.jpg | Bin 42839 -> 0 bytes .../images/banners/hackspace-banner.png | Bin 21121 -> 0 bytes .../images/banners/microscope.jpg | Bin 27842 -> 0 bytes .../images/banners/object_avoiding_robot.jpg | Bin 48416 -> 0 bytes .../images/banners/rocket_camera.jpg | Bin 30192 -> 0 bytes site/static_resources/images/canvas_old.html | 122 - .../screw_sorting_competition_banner.jpg | Bin 316585 -> 0 bytes .../images/css/sprite-action-white.png | Bin 53086 -> 0 bytes .../images/css/sprite-content-white.png | Bin 10702 -> 0 bytes .../images/css/sprite-navigation-white.png | Bin 5263 -> 0 bytes site/static_resources/images/example-01.jpg | Bin 96552 -> 0 bytes site/static_resources/images/example-02.jpg | Bin 95296 -> 0 bytes site/static_resources/images/example-03.jpg | Bin 54555 -> 0 bytes site/static_resources/images/favicon.png | Bin 1329 -> 0 bytes .../images/hackspace-banner.png | Bin 21121 -> 0 bytes .../images/hackspace-banner.svg | 424 - site/static_resources/images/hackspace.png | Bin 1900 -> 0 bytes site/static_resources/images/hackspace.svg | 393 - .../images/hackspace_960x540.png | Bin 24981 -> 0 bytes .../images/hackspace_960x960.png | Bin 33656 -> 0 bytes .../images/membership_card_background.png | Bin 32163 -> 0 bytes site/static_resources/images/oauth/google.png | Bin 4189 -> 0 bytes .../images/password_strength.png | Bin 93029 -> 0 bytes .../photos/meetup-malta-inn-31-07-2005.jpg | Bin 260791 -> 0 bytes site/static_resources/images/tile-01.jpg | Bin 14742 -> 0 bytes site/static_resources/images/tile-02.jpg | Bin 8882 -> 0 bytes .../images/tiles/malta-inn.jpg | Bin 16132 -> 0 bytes .../tiles/meetup-malta-inn-31-07-2005.jpg | Bin 24834 -> 0 bytes .../harvestable-resources-rock-metal-2.svg | 29 - .../images/vectors/membership_card.svg | 545 -- site/static_resources/js/default.js | 18 - site/static_resources/js/jquery-2.1.4.min.js | 4 - {site => website}/authorize.py | 0 {site => website}/config/settings.py | 25 +- website/config/settings_docker.py | 83 + {site => website}/constants.py | 3 - {site => website/data}/__init__.py | 0 {site => website}/data/badges.py | 8 +- {site => website}/data/donate.py | 0 {site => website}/data/equipment.py | 0 {site => website}/data/members.py | 0 website/data/migrate/clean.sql | 24 + .../data/migrate/generated_column_indexes.sql | 52 + website/data/migrate/generated_columns.sql | 162 + website/data/migrate/generated_tables.sql | 11 + .../migrations/generated_column_indexes.sql | 0 .../migrate}/migrations/generated_columns.sql | 0 .../migrate}/migrations/generated_tables.sql | 0 {site => website}/data/profile.py | 4 +- {site => website}/data/site_user.py | 12 +- .../data/sql/fetch_user_badges.sql | 0 {site => website}/data/sql/get_user_bio.sql | 0 .../data/sql/get_user_by_oauth_username.sql | 0 .../data/sql/get_user_credentials.sql | 0 .../data/sql/get_user_detail.sql | 0 .../data/sql/get_user_password_reset.sql | 0 {site => website}/data/sql/get_users.sql | 0 {site => website}/data/sql/member_list.sql | 0 {site => website}/data/sql/pledge_totals.sql | 0 {site => website}/generate.py | 0 website/html/404.htm | 12 + website/html/blog.htm | 121 + .../js => website/html}/canvas.js | 112 +- website/html/chat.htm | 121 + website/html/competition.htm | 174 + website/html/donate.htm | 124 + .../images => website/html}/icon.png | Bin website/html/index.htm | 142 + .../images => website/html}/rock.png | Bin {site => website}/index.py | 3 +- {site/config => website/libs}/__init__.py | 0 {site => website}/libs/mail.py | 0 {site => website}/libs/payments.py | 0 {site => website}/libs/rss_invalid.xml | 0 {site => website}/libs/rss_no_tags.xml | 0 {site => website}/migrate.py | 4 +- {site => website}/pages/__init__.py | 1 + {site => website}/pages/blog.py | 0 {site => website}/pages/calendar.py | 0 {site => website}/pages/chat.py | 0 {site => website}/pages/competition.py | 0 {site/data => website/pages/core}/__init__.py | 0 website/pages/core/authorize.py | 409 + website/pages/core/login_pages.py | 96 + {site => website}/pages/donate.py | 0 {site => website}/pages/equipment.py | 0 {site => website}/pages/examples.py | 0 {site => website}/pages/forge.py | 0 {site => website}/pages/google_groups.py | 6 +- {site => website}/pages/homepage.py | 0 {site => website}/pages/members.py | 0 website/pages/nearby.py | 22 + {site => website}/pages/profile.py | 0 website/setup.py | 9 + {site => website}/static/css/default.css | 5 +- website/static/css/materialize.css | 8183 +++++++++++++++++ .../static/css/sprite-action-white.css | 0 .../static/css/sprite-content-white.css | 0 .../static/css/sprite-navigation-white.css | 0 .../static/images/background.jpg | Bin .../static/images/background.png | Bin .../static/images/badges/art_hacker.png | Bin .../static/images/badges/circuit_hacker.png | Bin .../static/images/badges/code_hacker.png | Bin .../static/images/badges/craft_hacker.png | Bin .../static/images/badges/founder.png | Bin .../static/images/badges/handyman.png | Bin .../static/images/badges/member.png | Bin .../static/images/badges/pledged.png | Bin .../static/images/badges/trainer.png | Bin .../static/images/banners/audio_board.jpg | Bin .../images/banners/hackspace-banner.png | Bin .../static/images/banners/indiegogo.png | Bin .../static/images/banners/microscope.jpg | Bin .../images/banners/object_avoiding_robot.jpg | Bin .../static/images/banners/rocket_camera.jpg | Bin .../screw_sorting_competition_banner.jpg | Bin .../static/images/css/sprite-action-white.png | Bin .../images/css/sprite-content-white.png | Bin .../images/css/sprite-navigation-white.png | Bin .../static/images/example-01.jpg | Bin .../static/images/example-02.jpg | Bin .../static/images/example-03.jpg | Bin {site => website}/static/images/favicon.png | Bin .../static/images/hackspace-banner.png | Bin {site => website}/static/images/hackspace.png | Bin .../static/images/hackspace_960x540.png | Bin .../static/images/hackspace_960x960.png | Bin {site => website}/static/images/icon.png | Bin .../images/membership_card_background.png | Bin .../static/images/oauth/google.png | Bin .../static/images/password_strength.png | Bin .../photos/meetup-malta-inn-31-07-2005.jpg | Bin {site => website}/static/images/rock.png | Bin {site => website}/static/images/tile-01.jpg | Bin {site => website}/static/images/tile-02.jpg | Bin .../static/images/tiles/malta-inn.jpg | Bin .../tiles/meetup-malta-inn-31-07-2005.jpg | Bin {site => website}/static/js/canvas.js | 0 {site => website}/static/js/default.js | 0 .../static/js/jquery-2.1.4.min.js | 0 .../static/js/jquery-2.2.3.min.js | 0 {site/libs => website/templates}/__init__.py | 0 .../templates/emails}/__init__.py | 0 website/templates/emails/attending_meetup.htm | 39 + .../templates/emails/confirm_email.md | 0 .../templates/emails/reset_password.md | 0 .../emails => website/tests}/__init__.py | 0 website/tests/base.py | 19 + website/tests/test_add_badge.py | 61 + website/tests/test_create_users.py | 34 + website/tests/test_data.py | 31 + website/tests/test_oauth_login.py | 38 + .../tests/test_simple_querys.db | 0 website/tests/test_users.py | 37 + {site/widgets => website/tools}/__init__.py | 0 {site => website}/tools/get_blog_images.py | 0 .../tools/images/blog_image_0.jpg | Bin .../tools/images/blog_image_0.png | Bin .../tools/images/blog_image_1.jpg | Bin .../tools/images/blog_image_1.png | Bin .../tools/images/blog_image_10.jpg | Bin .../tools/images/blog_image_11.jpeg | Bin .../tools/images/blog_image_11.jpg | Bin .../tools/images/blog_image_12.jpg | Bin .../tools/images/blog_image_12.png | Bin .../tools/images/blog_image_13.jpg | Bin .../tools/images/blog_image_13.png | Bin .../tools/images/blog_image_14.jpg | Bin .../tools/images/blog_image_14.png | Bin .../tools/images/blog_image_15.jpg | Bin .../tools/images/blog_image_16.jpeg | Bin .../tools/images/blog_image_16.jpg | Bin .../tools/images/blog_image_17.jpg | Bin .../tools/images/blog_image_17.png | Bin .../tools/images/blog_image_18.jpg | Bin .../tools/images/blog_image_18.png | Bin .../tools/images/blog_image_19.jpg | Bin .../tools/images/blog_image_19.png | Bin .../tools/images/blog_image_2.jpg | Bin .../tools/images/blog_image_20.jpg | Bin .../tools/images/blog_image_20.png | Bin .../tools/images/blog_image_21.jpg | Bin .../tools/images/blog_image_22.jpg | Bin .../tools/images/blog_image_22.png | Bin .../tools/images/blog_image_23.jpg | Bin .../tools/images/blog_image_23.png | Bin .../tools/images/blog_image_24.jpg | Bin .../tools/images/blog_image_24.png | Bin .../tools/images/blog_image_25.jpg | Bin .../tools/images/blog_image_25.png | Bin .../tools/images/blog_image_26.jpg | Bin .../tools/images/blog_image_26.png | Bin .../tools/images/blog_image_27.jpg | Bin .../tools/images/blog_image_28.jpg | Bin .../tools/images/blog_image_28.png | Bin .../tools/images/blog_image_29.jpg | Bin .../tools/images/blog_image_29.png | Bin .../tools/images/blog_image_3.jpg | Bin .../tools/images/blog_image_30.jpg | Bin .../tools/images/blog_image_30.png | Bin .../tools/images/blog_image_4.jpg | Bin .../tools/images/blog_image_4.png | Bin .../tools/images/blog_image_5.jpg | Bin .../tools/images/blog_image_6.jpg | Bin .../tools/images/blog_image_7.jpg | Bin .../tools/images/blog_image_7.png | Bin .../tools/images/blog_image_8.jpg | Bin .../tools/images/blog_image_8.png | Bin .../tools/images/blog_image_9.jpg | Bin .../tools/images/blog_image_9.png | Bin website/widgets/__init__.py | 0 {site => website}/widgets/action_bar.py | 0 {site => website}/widgets/banner_slider.js | 0 {site => website}/widgets/banner_slider.py | 0 {site => website}/widgets/calendar.py | 0 .../widgets/change_password_box.py | 0 website/widgets/chart.py | 14 + {site => website}/widgets/chat.py | 0 {site => website}/widgets/columns.py | 0 {site => website}/widgets/email_template.py | 0 {site => website}/widgets/example.py | 0 {site => website}/widgets/footer_content.py | 0 {site => website}/widgets/form.py | 0 {site => website}/widgets/google_calendar.py | 0 {site => website}/widgets/google_groups.py | 0 .../widgets/google_groups_signup.py | 0 {site => website}/widgets/google_hangout.py | 0 {site => website}/widgets/header_strip.py | 0 website/widgets/info_box.py | 20 + {site => website}/widgets/like.py | 0 {site => website}/widgets/login_box.py | 0 {site => website}/widgets/member_card.py | 0 {site => website}/widgets/member_tiles.py | 0 {site => website}/widgets/messages.py | 0 {site => website}/widgets/navigation_bar.py | 0 {site => website}/widgets/page.py | 0 {site => website}/widgets/password_box.py | 0 {site => website}/widgets/popup.py | 0 {site => website}/widgets/readme | 0 {site => website}/widgets/register_form.htm | 0 {site => website}/widgets/register_form.py | 0 {site => website}/widgets/tiles.py | 0 {site => website}/widgets/twitter_feed.py | 0 {site => website}/wsgi.py | 0 265 files changed, 10189 insertions(+), 5301 deletions(-) create mode 100644 developers/pre-commit.sh delete mode 100644 site/examples.html delete mode 100644 site/static_resources/css/default.css delete mode 100644 site/static_resources/css/sprite-action-white.css delete mode 100644 site/static_resources/css/sprite-content-white.css delete mode 100644 site/static_resources/css/sprite-navigation-white.css delete mode 100644 site/static_resources/images/background.jpg delete mode 100644 site/static_resources/images/background.png delete mode 100644 site/static_resources/images/badges/art_hacker.png delete mode 100644 site/static_resources/images/badges/badges.svg delete mode 100644 site/static_resources/images/badges/circuit_hacker.png delete mode 100644 site/static_resources/images/badges/code_hacker.png delete mode 100644 site/static_resources/images/badges/craft_hacker.png delete mode 100644 site/static_resources/images/badges/founder.png delete mode 100644 site/static_resources/images/badges/handyman.png delete mode 100644 site/static_resources/images/badges/member.png delete mode 100644 site/static_resources/images/badges/pledged.png delete mode 100644 site/static_resources/images/badges/trainer.png delete mode 100644 site/static_resources/images/banners/audio_board.jpg delete mode 100644 site/static_resources/images/banners/hackspace-banner.png delete mode 100644 site/static_resources/images/banners/microscope.jpg delete mode 100644 site/static_resources/images/banners/object_avoiding_robot.jpg delete mode 100644 site/static_resources/images/banners/rocket_camera.jpg delete mode 100644 site/static_resources/images/canvas_old.html delete mode 100644 site/static_resources/images/competitions/screw_sorting_competition_banner.jpg delete mode 100644 site/static_resources/images/css/sprite-action-white.png delete mode 100644 site/static_resources/images/css/sprite-content-white.png delete mode 100644 site/static_resources/images/css/sprite-navigation-white.png delete mode 100644 site/static_resources/images/example-01.jpg delete mode 100644 site/static_resources/images/example-02.jpg delete mode 100644 site/static_resources/images/example-03.jpg delete mode 100644 site/static_resources/images/favicon.png delete mode 100644 site/static_resources/images/hackspace-banner.png delete mode 100644 site/static_resources/images/hackspace-banner.svg delete mode 100644 site/static_resources/images/hackspace.png delete mode 100644 site/static_resources/images/hackspace.svg delete mode 100644 site/static_resources/images/hackspace_960x540.png delete mode 100644 site/static_resources/images/hackspace_960x960.png delete mode 100644 site/static_resources/images/membership_card_background.png delete mode 100755 site/static_resources/images/oauth/google.png delete mode 100644 site/static_resources/images/password_strength.png delete mode 100644 site/static_resources/images/photos/meetup-malta-inn-31-07-2005.jpg delete mode 100644 site/static_resources/images/tile-01.jpg delete mode 100644 site/static_resources/images/tile-02.jpg delete mode 100644 site/static_resources/images/tiles/malta-inn.jpg delete mode 100644 site/static_resources/images/tiles/meetup-malta-inn-31-07-2005.jpg delete mode 100644 site/static_resources/images/vectors/harvestable-resources-rock-metal-2.svg delete mode 100644 site/static_resources/images/vectors/membership_card.svg delete mode 100644 site/static_resources/js/default.js delete mode 100644 site/static_resources/js/jquery-2.1.4.min.js rename {site => website}/authorize.py (100%) rename {site => website}/config/settings.py (76%) create mode 100644 website/config/settings_docker.py rename {site => website}/constants.py (89%) rename {site => website/data}/__init__.py (100%) rename {site => website}/data/badges.py (96%) rename {site => website}/data/donate.py (100%) rename {site => website}/data/equipment.py (100%) rename {site => website}/data/members.py (100%) create mode 100644 website/data/migrate/clean.sql create mode 100644 website/data/migrate/generated_column_indexes.sql create mode 100644 website/data/migrate/generated_columns.sql create mode 100644 website/data/migrate/generated_tables.sql rename {site/sql => website/data/migrate}/migrations/generated_column_indexes.sql (100%) rename {site/sql => website/data/migrate}/migrations/generated_columns.sql (100%) rename {site/sql => website/data/migrate}/migrations/generated_tables.sql (100%) rename {site => website}/data/profile.py (95%) rename {site => website}/data/site_user.py (97%) rename {site => website}/data/sql/fetch_user_badges.sql (100%) rename {site => website}/data/sql/get_user_bio.sql (100%) rename {site => website}/data/sql/get_user_by_oauth_username.sql (100%) rename {site => website}/data/sql/get_user_credentials.sql (100%) rename {site => website}/data/sql/get_user_detail.sql (100%) rename {site => website}/data/sql/get_user_password_reset.sql (100%) rename {site => website}/data/sql/get_users.sql (100%) rename {site => website}/data/sql/member_list.sql (100%) rename {site => website}/data/sql/pledge_totals.sql (100%) rename {site => website}/generate.py (100%) create mode 100644 website/html/404.htm create mode 100644 website/html/blog.htm rename {site/static_resources/js => website/html}/canvas.js (70%) create mode 100644 website/html/chat.htm create mode 100644 website/html/competition.htm create mode 100644 website/html/donate.htm rename {site/static_resources/images => website/html}/icon.png (100%) create mode 100644 website/html/index.htm rename {site/static_resources/images => website/html}/rock.png (100%) rename {site => website}/index.py (97%) rename {site/config => website/libs}/__init__.py (100%) rename {site => website}/libs/mail.py (100%) rename {site => website}/libs/payments.py (100%) rename {site => website}/libs/rss_invalid.xml (100%) rename {site => website}/libs/rss_no_tags.xml (100%) rename {site => website}/migrate.py (71%) rename {site => website}/pages/__init__.py (97%) rename {site => website}/pages/blog.py (100%) rename {site => website}/pages/calendar.py (100%) rename {site => website}/pages/chat.py (100%) rename {site => website}/pages/competition.py (100%) rename {site/data => website/pages/core}/__init__.py (100%) create mode 100644 website/pages/core/authorize.py create mode 100644 website/pages/core/login_pages.py rename {site => website}/pages/donate.py (100%) rename {site => website}/pages/equipment.py (100%) rename {site => website}/pages/examples.py (100%) rename {site => website}/pages/forge.py (100%) rename {site => website}/pages/google_groups.py (75%) rename {site => website}/pages/homepage.py (100%) rename {site => website}/pages/members.py (100%) create mode 100644 website/pages/nearby.py rename {site => website}/pages/profile.py (100%) create mode 100755 website/setup.py rename {site => website}/static/css/default.css (99%) create mode 100644 website/static/css/materialize.css rename {site => website}/static/css/sprite-action-white.css (100%) rename {site => website}/static/css/sprite-content-white.css (100%) rename {site => website}/static/css/sprite-navigation-white.css (100%) rename {site => website}/static/images/background.jpg (100%) rename {site => website}/static/images/background.png (100%) rename {site => website}/static/images/badges/art_hacker.png (100%) rename {site => website}/static/images/badges/circuit_hacker.png (100%) rename {site => website}/static/images/badges/code_hacker.png (100%) rename {site => website}/static/images/badges/craft_hacker.png (100%) rename {site => website}/static/images/badges/founder.png (100%) rename {site => website}/static/images/badges/handyman.png (100%) rename {site => website}/static/images/badges/member.png (100%) rename {site => website}/static/images/badges/pledged.png (100%) rename {site => website}/static/images/badges/trainer.png (100%) rename {site => website}/static/images/banners/audio_board.jpg (100%) rename {site => website}/static/images/banners/hackspace-banner.png (100%) rename {site => website}/static/images/banners/indiegogo.png (100%) rename {site => website}/static/images/banners/microscope.jpg (100%) rename {site => website}/static/images/banners/object_avoiding_robot.jpg (100%) rename {site => website}/static/images/banners/rocket_camera.jpg (100%) rename {site => website}/static/images/competitions/screw_sorting_competition_banner.jpg (100%) rename {site => website}/static/images/css/sprite-action-white.png (100%) rename {site => website}/static/images/css/sprite-content-white.png (100%) rename {site => website}/static/images/css/sprite-navigation-white.png (100%) rename {site => website}/static/images/example-01.jpg (100%) rename {site => website}/static/images/example-02.jpg (100%) rename {site => website}/static/images/example-03.jpg (100%) rename {site => website}/static/images/favicon.png (100%) rename {site => website}/static/images/hackspace-banner.png (100%) rename {site => website}/static/images/hackspace.png (100%) rename {site => website}/static/images/hackspace_960x540.png (100%) rename {site => website}/static/images/hackspace_960x960.png (100%) rename {site => website}/static/images/icon.png (100%) rename {site => website}/static/images/membership_card_background.png (100%) rename {site => website}/static/images/oauth/google.png (100%) rename {site => website}/static/images/password_strength.png (100%) rename {site => website}/static/images/photos/meetup-malta-inn-31-07-2005.jpg (100%) rename {site => website}/static/images/rock.png (100%) rename {site => website}/static/images/tile-01.jpg (100%) rename {site => website}/static/images/tile-02.jpg (100%) rename {site => website}/static/images/tiles/malta-inn.jpg (100%) rename {site => website}/static/images/tiles/meetup-malta-inn-31-07-2005.jpg (100%) rename {site => website}/static/js/canvas.js (100%) rename {site => website}/static/js/default.js (100%) rename {site => website}/static/js/jquery-2.1.4.min.js (100%) rename {site => website}/static/js/jquery-2.2.3.min.js (100%) rename {site/libs => website/templates}/__init__.py (100%) rename {site/templates => website/templates/emails}/__init__.py (100%) create mode 100644 website/templates/emails/attending_meetup.htm rename {site => website}/templates/emails/confirm_email.md (100%) rename {site => website}/templates/emails/reset_password.md (100%) rename {site/templates/emails => website/tests}/__init__.py (100%) create mode 100644 website/tests/base.py create mode 100644 website/tests/test_add_badge.py create mode 100644 website/tests/test_create_users.py create mode 100644 website/tests/test_data.py create mode 100644 website/tests/test_oauth_login.py rename site/tools/__init__.py => website/tests/test_simple_querys.db (100%) create mode 100644 website/tests/test_users.py rename {site/widgets => website/tools}/__init__.py (100%) rename {site => website}/tools/get_blog_images.py (100%) rename {site => website}/tools/images/blog_image_0.jpg (100%) rename {site => website}/tools/images/blog_image_0.png (100%) rename {site => website}/tools/images/blog_image_1.jpg (100%) rename {site => website}/tools/images/blog_image_1.png (100%) rename {site => website}/tools/images/blog_image_10.jpg (100%) rename {site => website}/tools/images/blog_image_11.jpeg (100%) rename {site => website}/tools/images/blog_image_11.jpg (100%) rename {site => website}/tools/images/blog_image_12.jpg (100%) rename {site => website}/tools/images/blog_image_12.png (100%) rename {site => website}/tools/images/blog_image_13.jpg (100%) rename {site => website}/tools/images/blog_image_13.png (100%) rename {site => website}/tools/images/blog_image_14.jpg (100%) rename {site => website}/tools/images/blog_image_14.png (100%) rename {site => website}/tools/images/blog_image_15.jpg (100%) rename {site => website}/tools/images/blog_image_16.jpeg (100%) rename {site => website}/tools/images/blog_image_16.jpg (100%) rename {site => website}/tools/images/blog_image_17.jpg (100%) rename {site => website}/tools/images/blog_image_17.png (100%) rename {site => website}/tools/images/blog_image_18.jpg (100%) rename {site => website}/tools/images/blog_image_18.png (100%) rename {site => website}/tools/images/blog_image_19.jpg (100%) rename {site => website}/tools/images/blog_image_19.png (100%) rename {site => website}/tools/images/blog_image_2.jpg (100%) rename {site => website}/tools/images/blog_image_20.jpg (100%) rename {site => website}/tools/images/blog_image_20.png (100%) rename {site => website}/tools/images/blog_image_21.jpg (100%) rename {site => website}/tools/images/blog_image_22.jpg (100%) rename {site => website}/tools/images/blog_image_22.png (100%) rename {site => website}/tools/images/blog_image_23.jpg (100%) rename {site => website}/tools/images/blog_image_23.png (100%) rename {site => website}/tools/images/blog_image_24.jpg (100%) rename {site => website}/tools/images/blog_image_24.png (100%) rename {site => website}/tools/images/blog_image_25.jpg (100%) rename {site => website}/tools/images/blog_image_25.png (100%) rename {site => website}/tools/images/blog_image_26.jpg (100%) rename {site => website}/tools/images/blog_image_26.png (100%) rename {site => website}/tools/images/blog_image_27.jpg (100%) rename {site => website}/tools/images/blog_image_28.jpg (100%) rename {site => website}/tools/images/blog_image_28.png (100%) rename {site => website}/tools/images/blog_image_29.jpg (100%) rename {site => website}/tools/images/blog_image_29.png (100%) rename {site => website}/tools/images/blog_image_3.jpg (100%) rename {site => website}/tools/images/blog_image_30.jpg (100%) rename {site => website}/tools/images/blog_image_30.png (100%) rename {site => website}/tools/images/blog_image_4.jpg (100%) rename {site => website}/tools/images/blog_image_4.png (100%) rename {site => website}/tools/images/blog_image_5.jpg (100%) rename {site => website}/tools/images/blog_image_6.jpg (100%) rename {site => website}/tools/images/blog_image_7.jpg (100%) rename {site => website}/tools/images/blog_image_7.png (100%) rename {site => website}/tools/images/blog_image_8.jpg (100%) rename {site => website}/tools/images/blog_image_8.png (100%) rename {site => website}/tools/images/blog_image_9.jpg (100%) rename {site => website}/tools/images/blog_image_9.png (100%) create mode 100644 website/widgets/__init__.py rename {site => website}/widgets/action_bar.py (100%) rename {site => website}/widgets/banner_slider.js (100%) rename {site => website}/widgets/banner_slider.py (100%) rename {site => website}/widgets/calendar.py (100%) rename {site => website}/widgets/change_password_box.py (100%) create mode 100644 website/widgets/chart.py rename {site => website}/widgets/chat.py (100%) rename {site => website}/widgets/columns.py (100%) rename {site => website}/widgets/email_template.py (100%) rename {site => website}/widgets/example.py (100%) rename {site => website}/widgets/footer_content.py (100%) rename {site => website}/widgets/form.py (100%) rename {site => website}/widgets/google_calendar.py (100%) rename {site => website}/widgets/google_groups.py (100%) rename {site => website}/widgets/google_groups_signup.py (100%) rename {site => website}/widgets/google_hangout.py (100%) rename {site => website}/widgets/header_strip.py (100%) create mode 100644 website/widgets/info_box.py rename {site => website}/widgets/like.py (100%) rename {site => website}/widgets/login_box.py (100%) rename {site => website}/widgets/member_card.py (100%) rename {site => website}/widgets/member_tiles.py (100%) rename {site => website}/widgets/messages.py (100%) rename {site => website}/widgets/navigation_bar.py (100%) rename {site => website}/widgets/page.py (100%) rename {site => website}/widgets/password_box.py (100%) rename {site => website}/widgets/popup.py (100%) rename {site => website}/widgets/readme (100%) rename {site => website}/widgets/register_form.htm (100%) rename {site => website}/widgets/register_form.py (100%) rename {site => website}/widgets/tiles.py (100%) rename {site => website}/widgets/twitter_feed.py (100%) rename {site => website}/wsgi.py (100%) diff --git a/Dockerfile b/Dockerfile index 9a44ad9..0dd7b04 100644 --- a/Dockerfile +++ b/Dockerfile @@ -5,13 +5,16 @@ FROM ubuntu:16.04 MAINTAINER Oliver Marks "olymk2@gmail.com" +ENV SERVER_ENVIRONMENT DOCKER + # make sure the package repository is up to date RUN \ apt-get update && \ apt-get upgrade -y && \ - apt-get install -y libssl-dev libffi-dev && \ + apt-get install -y libssl-dev libffi-dev nano && \ apt-get install -y software-properties-common python-software-properties && \ - apt-get install -y python-mysqldb python-psycopg2 python-requests-oauthlib python-pip python-dev python-dateutil python-requests python-lxml python-flask python-flask-login python-pillow && \ + apt-get install -y software-properties-common python-pip python-dev python-nose2 && \ + apt-get install -y python-mysqldb python-psycopg2 python-requests-oauthlib python-dateutil python-requests python-lxml python-flask python-flask-login python-pillow && \ apt-get install -y cssmin slimit && \ add-apt-repository -y ppa:oly/ppa && \ apt-get update && \ @@ -21,9 +24,9 @@ RUN pip install gocardless paypalrestsdk pytz #allow access to flask EXPOSE 5000 5002 -WORKDIR /var/www/ +WORKDIR /var/www/website/ #RUN /bin/sh -c 'cd /var/www/site; python index.py' -ENTRYPOINT /bin/sh -c 'cd /var/www/site; python index.py' +ENTRYPOINT /bin/sh -c 'python index.py' #docker build -t mhackspace . #docker run -d --name=mhackspace_container --restart=always mhackspace diff --git a/README.md b/README.md index 852ad4d..159ba29 100644 --- a/README.md +++ b/README.md @@ -10,13 +10,12 @@ push your changes to your github account and create a pull request back into the if everything is okay. -The simplest way to setup this site is to use docker so please install that from this site https://docs.docker.com/engine/installation/ +The simplest way to setup this site is to use docker-compose so please install that from this site https://docs.docker.com/engine/installation/ and make sure the quick start guide works https://docs.docker.com/machine/get-started/ then you can use the commands below to test and make changes. - docker build -t maidstone-hackspace . - docker run -p 5000:5000 maidstone-hackspace + docker-compose up -If you plan on making large changes consider discussing it first so you dont wast your own time. +If you plan on making large changes consider discussing it first so you dont waste your own time. Generating static content ------------------------- @@ -50,3 +49,18 @@ Run locally with uwsgi on port 9090 Run locally with flask python index.py + + +Developers recommendations +-------------------------- + +To run the tests you can use one of the following + +```` +nose2 +python -m unittest discover +```` + +run this in the root to setup pre commit checks, it will run unit tests and check code + + ln -s developers/pre-commit.sh .git/hooks/pre-commit diff --git a/developers/pre-commit.sh b/developers/pre-commit.sh new file mode 100644 index 0000000..af9fa19 --- /dev/null +++ b/developers/pre-commit.sh @@ -0,0 +1,4 @@ +# run tests before commit +nose2 + + diff --git a/site/examples.html b/site/examples.html deleted file mode 100644 index f9af769..0000000 --- a/site/examples.html +++ /dev/null @@ -1,99 +0,0 @@ - - - - - - - - - - - - - -
- -
-
Recovering Deleted Tweets By Simon Ridley

Occasionally you may find that a notable Twitter profile may remove tweets, or be shut down before preservation can be initiated by the forensic examiner. Should this be the case, you may be required to refer to caching services such as Google Cache or Twicsy for example. I recently had need to evidence data found on Twicsy, however the web interface isn't exactly forensic friendly when it comes to how it displays the data. Twicsy.com is a Twitter picture search engine, which appears to duplicate the original textual data from a tweet containing an image, and stores this information on their own web server. The image from a tweet is simply referred to from the source, and if the tweet is deleted or the profile removed, you'll find the image won't exist any more. However the textual data does still remains on Twicsy's website despite the original tweet not existing. After discovering this I wrote a ruby script to extract each of the archived tweets and place it into a format which is readable.

When Microsoft calls a Vulnerability a “Feature” By Mathew Beddow

Also known as When responsible disclosure gets you no-where, make them listen by going public but it didnt have such a good ring to it. So, to the meat of the business. I have a Nokia Lumia 920 which a Continue reading

Backlinks and SEO By Mathew Beddow

Following a recent discussion I had with a university dive club member about a request to remove a back-link from a now dead forum from a travel insurance company, I thought Id take this opportunity to delve into the mystical Continue reading

Keyword Tracking Live Tweets By Simon Ridley

A little experiment script I cobbled together for live incident tracking over Twitter, very useful for identifying, and evidencing signs of racism or death threats towards others. If the scenario requires it, geo data can be included in the capture, along with tweet source which identifies how the tweet was made either via a mobile device or a web browser. Also quite handy if and when exhibits need to be seized, and you need to narrow down what device the tweets were made from.

Twitter Profile Extraction Tool API Update By Simon Ridley

After a couple of requests from members on Forensic Focus, I've updated this script so that profiles can be accessed / extracted via Twitter's API update 1.1. I had converted the original script into an executable which was available for download on SourceForge, however since the API now requires authentication, I don't like the idea of packaging my own API keys into this. All this means is that you will require your own API keys, which you can create at Twitter's Application management page.

Torrent File Parser By Simon Ridley

This is a great script for obtaining the metainfo contained within torrent files. Due to the encoding used, keyword searches conducted during computer forensic analysis may not return any results when analyzing these types of files. This ruby script decodes the torrent, allowing an examiner to view the contained information, such as tracker list, file names, file sizes, directories, MD5 sum, etc. Credit goes to Rob Williams for creating this, all I did was alter the Bencoding Library, as I was unable to get the original to function. Hopefully you'll find this as useful as I did!

Twitter Profile Extraction Tool By Simon Ridley

So I wrote this back in late 2012, for use with the Twitter API V1.0. Unfortunately this script it is now some what redundant as the API was updated in June 2013 to use OAuth. However I'm re-posting this, as it was originally hosted on launchpad.net, but I'm now centralizing all my scripts on github.com. Despite the current condition of the script, it may prove valuable to someone out there, you just never know!

-